Veröffentlicht 6. Februar 200223 j wie kann ich aus einer Text-Datei Strings einlesen? ist es möglich beim Einlesen die Zeilenzahl anzugeben? hab es mit getline probiert komm da aber nicht ganz weiter klar ist: getline braucht 3 paramter getline (par1,par2,par3) der erste und der letzte parameter sind mir nicht ganz klar der mittlere steht für die variable in der der string geschrieben werden soll. Gruß Johannes
6. Februar 200223 j Hi, wie wäre es denn hiermit... char zeile [81] = " "; ... ifstream fin ("c:\\datei.txt", ios::in); //öffnet die Datei zum einlesen. ... fin.getline>>zeile //vielleicht auch fgets verwenden ... fout.close(); ... //Habe hier nicht so sehr auf die Syntax geachtet Die Stichworte sollten eigentlich reichen. Du musst das natürlich noch Deinen Anforderungen anpassen. Wenn Du noch mehr Informationen brauchst, dann schau mal in den vergangen Threads. Das Thema wurde hier schon ein paar Mal behandelt... Grüsse! DocMabuse
6. Februar 200223 j Sorry, aber ich komm noch nicht ganz klar. Hab es bissher so probiert. Das scheint auch ganz ok zu sein, aber void adresse::einlesen() { char index[50]; fstream dat_ein; dat_ein.open("C:\\test.txt",ios::in); dat_ein.getline (index,sizeoff,); dat_ein.close; } so, die datei wird zum lesen geöffnet, und wird auch wieder geschlossen, aber mit dem einlesen gibt es noch probs. für was stehen dann aber die anderen 2 paramter von getline? will nicht nerven, bin aber leider blutiger anfänger Gruß Johannes
6. Februar 200223 j Ok, es müsste ungefähr so aussehen... ... char zeile [81] = " "; ifstream fin ("c:\\datei.txt", ios::in); if (fin.good()) { while (!fin.eof()) { fin.getline(zeile,80); cout<<zeile<<endl; } fin.close(); } ... "getline" benötigt zwei Parameter: a) char* s long n Im Klartext heißt dass, er braucht einen String, in den der eingelesene Inhalt gespeichert wird. Die Zahl gibt einfach an, wieviele Zeichen gelesen werden sollen. Ich würde auch darauf achten, dass die Datei zum Einlesen mit "ifstream" geöffnet wird. Es geht aber auch einfach mit "fstream". Ist nur so eine Angewohnheit von mir. Grüsse! DocMabuse
6. Februar 200223 j THX for the Help !!!! Hab es folgendermaßen hinbekommen. void adresse ::lesen_datei() { cout << "Ihre Daten werden nun eingelesen" << endl; ifstream dat_ein; dat_ein.open(dateiname.c_str(), ios::in); if (!dat_ein) { cout << " Sorry, die Datei konnte nicht geöffnet werden" << endl; } char zeichen; while (!dat_ein.eof()) { dat_ein.get(zeichen); cout << zeichen; } } Muss halt mal schauen wie ich des mach wenn ich nur bestimmte teile der datei einlesen will. entweder mit [;] oder zeilenweise. Gruß Johannes
7. Februar 200223 j Kannsts auch mal so versuchen (Auszug aus der MSDN) : //fopen, _wfopen //Open a file. FILE *fopen( const char *filename, const char *mode ); //filename = Filename //mode = Type of access permitted z.b "r" für reading ////////////////////////////////////////////////////////////////// //fread //Reads data from a stream. size_t fread( void *buffer, size_t size, size_t count, FILE *stream ); // size in bytes // count = Maximum number of items to be read // stram = Pointer to FILE structure Wichtig: Am ende fclose(stream) nicht vergessen! ! Gruß Archer
7. Februar 200223 j ja, hab ich auch schon probiert. funzt ebenfalls, find die andere möglichkeit aber einfacher. Wie mach ich es aber blos das er bis zu einer gewissen stelle aus der datei liest? und später bei der stelle wieder anfängt? Gruß Johannes
7. Februar 200223 j Original geschrieben von -= *["]Mr.Coffee["]* =- ... Wie mach ich es aber blos das er bis zu einer gewissen stelle aus der datei liest? und später bei der stelle wieder anfängt? ... Du könntest mal mit tellg() und seekg() arbeiten. Soweit ich weiß kann man damit den Zeiger auf bestimmte Stellen in der Datei setzen. tellg() liefert Dir, glaube ich, die Länge der Datei in Byte. Kannst das ja mal in Deinem Compiler nachschauen. Ob das so klappt bleibt abzuwarten. Grüsse! DocMabuse
7. Februar 200223 j Ich weiß zwar nicht genau, was du machen möchtest, aber du kannst auch die ganze Datei in ein Sting auslesen und dann den String ab einer bestimmten Stelle abschenden. Beispielsweise, wenn du als Trennzeichen ein / benutzt.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.