-= *["]Mr.Coffee["]* =- Geschrieben 6. Februar 2002 Geschrieben 6. Februar 2002 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 Zitieren
DocMabuse Geschrieben 6. Februar 2002 Geschrieben 6. Februar 2002 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 Zitieren
-= *["]Mr.Coffee["]* =- Geschrieben 6. Februar 2002 Autor Geschrieben 6. Februar 2002 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 Zitieren
DocMabuse Geschrieben 6. Februar 2002 Geschrieben 6. Februar 2002 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 Zitieren
-= *["]Mr.Coffee["]* =- Geschrieben 6. Februar 2002 Autor Geschrieben 6. Februar 2002 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 Zitieren
Capt. J. Archer Geschrieben 7. Februar 2002 Geschrieben 7. Februar 2002 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 Zitieren
-= *["]Mr.Coffee["]* =- Geschrieben 7. Februar 2002 Autor Geschrieben 7. Februar 2002 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 Zitieren
DocMabuse Geschrieben 7. Februar 2002 Geschrieben 7. Februar 2002 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 Zitieren
Capt. J. Archer Geschrieben 7. Februar 2002 Geschrieben 7. Februar 2002 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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.