Datei einlesen->nach trennzeichen in array splitten
-
Hallo,
ich möchte aus einer externen datei alles einlesen lassen;
inhalt der "datei.txt":path_pics=C:\myPathToPics\
path_vids=C:\myPathToVids\das ich einen array habe im programm:
variable_array['path_pics']
wie stelle ich das an? bei der suche habe ich nur was gefunden um zeilen auszulesen...
-
Hallo,
meinst du eher soetwas!?
array[0] = "path_pics";Für die Lösung deines Problems fallen mir 2 Sachen ein:
CString
String TokenizerSchau dir mal die Klasse CString genauer an.
Hier gibt's einige Funktionen, wie Left(), Mid() usw.Dafür gibt's auch ein CStringArray.
MfG
-
Naja nicht ganz, ich erklärs mal in php^^:
<?php $array = array(); //... echo $array['path_pics']; //Gibt "C:\myPathToPics\" aus echo $array['path_vids']; //Gibt "C:\myPathToVids\" aus ?>
-
...so kann man zeichenweise einlesen, du musst dir nur noch nen algorithmus ausdenken wie du ausliest, dass heisst ne abbruchbedingung definieren wenn das trennzeichen erreicht ist und dann in einen array, liste oder was auch immer kopieren.
CFile file; CString Path="C:\\blabla.txt"; char temp[1]; if(file.Open(Path, CFile::modeRead |CFile::typeText)) { file.Seek(0, CFile::begin); // an den anfang positionieren - nicht // unbedingt nötig file.Read(temp, 1); // ein zeichen einlesen } file.Close();
-
komme nicht klar

gibt es keine funktion oder so, womit man in eine zeichenkette ein trennungszeichen suchen kann und dann das in einen array splitten?char zeichenkette = "ich|bin|cpp";
...cout << zeichenkette[0]; //sollte "ich" ausgeben
cout << zeichenkette[1]; //sollte "bin" ausgeben
cout << zeichenkette[2]; //sollte "cpp" ausgeben
-
Na ja nicht ganz, ich erklärs mal in php^^:
Aha, mal wieder was dazugelernt

Du brauchst den String Tokenizer. In der MSDN gut erklärt.
Die Funktion heisst (glaube ich) _strtokMfG
-
jo das hier ist das was du suchst musst es nur noch n bischen modifizieren
File=fopen(Filename,"r"); while(!feof(File))//damit schaust du ob du am ende der zeile bist du kan´nst aber auch gleich den ganzen text einlesen { fgets(rsbuffer,55,File); while(DeinMemberString.Find(rsbuffer,pos) != -1) { pos = DeinMemberString.Find(rsbuffer,pos) + 1; } } fclose(File); pos = DeinmemberString.Find(' ',pos) + 1;// so schaut des dan für dein lerzeichen aus.oder es geht auch anders: mit "strchr" kann man ein zeichen von links aus suchen. Mit "strcspn" kann man ganze Zeichenketten suchen. hilfe must du dir von msdn geben lassen ich hab damit mein Rechtschreibprog geschrieben(des prog ist der letzte scheis)
ich hoffe das hat dir ein bischen geholfen hier noch ein kleinber link zu einer tabbelle wo steht was du mit strings alles anstellen kannst:
http://ourworld.compuserve.com/homepages/praxisservice/kapit3.htm