tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
356
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    nesti71 nesti71 ist offline Mitglied
    Registriert seit
    Dec 2009
    Beiträge
    13
    Hallo zusammen,
    wäre nett wenn mir einer bei meinem kleinen Problem helfen könnte.
    Ein Programm gibt mir eine TXT-Datei aus die folgendes Muster hat:

    Jeder Datensatz hat eine Zeile, die Unterschiedlichen Informationsabschnitte werden durch # getrennt

    Datensatz1#info1#info2#info3#info4#info5#......
    Datensatz2#info1#info2#info3#info4#info5#......
    Datensatz3#info1#info2#info3#info4#info5#......
    Datensatz4#info1#info2#info3#info4#info5#......
    ...usw...

    Gibt es irgendwie eine Möglichkeit in der Datei jeweils z.B. nur den Parameter info3 zu durchsuchen um danach den Datensatz indem ein entsprechender Treffer enthalten ist in einer var zu speichern ? Irgendwie mit Sprungmarken öÄ ?!

    Danke schonmal im Vorraus.
    Gruß.
     

  2. #2
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Schau dir mal die Funktion fgetcsv an.

    Damit kannst du eine Datei zeilenweise in ein Arrray einlesen und angeben durch welches Zeichen die Felder getrennt sind.
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  3. #3
    nesti71 nesti71 ist offline Mitglied
    Registriert seit
    Dec 2009
    Beiträge
    13
    Ok, super.
    Danke!
     

  4. #4
    nesti71 nesti71 ist offline Mitglied
    Registriert seit
    Dec 2009
    Beiträge
    13
    Bin die Sache jetzt erst mal etwas simpler angegangen und habe die gesamte Datei in ein Array eingelesen, welches folgendes Muster hat:

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    $zeile[zeilennummer][spaltennummer]
     
    hier der zugehörige Code:
     for($i=0; $i < count($data); $i++ )
        {
           $zeile[$i] = explode( "#", $data[$i] );
        }

    Um systematischer und übersichtlicher weitermachen zu können will ich anstatt der Spaltennummer als zweiten Schlüssel sprechende Namen verwenden um nicht immer nachschauen zu müssen welche Info ich mit welcher Nummer auslesen kann.
    Habe jetzt schon ewig versucht die Schlüssel mit Namen zu versehen (vorher definieren, schleife usw..)
    Kann mir nochmals jemand weiterhelfen ?
    Wäre nett!
    Geändert von nesti71 (21.11.10 um 12:53 Uhr)
     

  5. #5
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    Du willst ein assoziatives Array aufbauen. Die simple Frage ist, hat es wirklich einen Nutzen für Dich?

    Um eine sinnvolle Antwort zu geben: Nachdem Du das Array per explode erstellt hast, speicherst Du händisch die Daten in das assoziative Array um.
    PHP-Code:
    $DeinArray=array();
     for(
    $i=0$i count($data); $i++ )
        {
           
    $zeile[$i] = explode"#"$data[$i] );
           
    $DeinArray[$i]['erstesFeld']=$zeile[$i][0];
           
    $DeinArray[$i]['zweitesFeld']=$zeile[$i][1];
           
    //usw - kann auch mit for gelöst werden,
           //wenn array mit mit assoc-Namen erstellt wurde
           // Zudem könntest Du diese Schleife auch mit foreach() lösen
        

    Und hier noch eine optimierte Lösung
    (wobei ich nie ganz glücklich bin, wenn ich eine quasi-fertige Lösung poste)
    PHP-Code:
    $assocNamen=array('Name','Alter','telefon','email');
    $DeinArray=array();

    foreach(
    $zeile as $key=>$value)
    {
      
    $tmparray=explode('#',$value)
      foreach(
    $tmparray as $tmpkey=>$tmpvalue)
      {
         
    $DeinArray[$key][$assocNamen[$tmpkey]]=$tmpvalue;
       }

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  6. #6
    nesti71 nesti71 ist offline Mitglied
    Registriert seit
    Dec 2009
    Beiträge
    13
    Danke Dir für deine Mühe!
    Kann ich gut verstehen Mir hilft es manchmal ungemein beim Lernen wenn ich eine Lösung vor mir hab die ich dann verstehen und mir erarbeiten kann. Aber du hast natürlich recht dass das so eigentlich nicht Sinn der Sache ist.
     

Ähnliche Themen

  1. Linien auf gerader Fläche systematisch anordnen
    Von grosserboss im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 14.07.08, 19:59
  2. Antworten: 0
    Letzter Beitrag: 05.07.08, 17:28
  3. txt file auf einträge durchsuchen
    Von TanyaCH im Forum PHP
    Antworten: 17
    Letzter Beitrag: 10.05.05, 17:59
  4. [perl] file durchsuchen und bestimmtes wort ersetzen
    Von alie im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 19.04.02, 12:04