Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Textblöcke in einer Datei finden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.04.2004, 10:59 Uhr
Otmar



Hallo,
wer kann mir eine Möglichkeit sagen, wie ich Textblocke, die in einer Datei vorkommen, finde und diese in einem Memofeld oder in einer Datei abspeichern kann.
Die Textblöcke beginnen immer mit "VAR_INPUT" und enden immer mit "END_VAR".
Es würde mir genügen, die Texte vor dem Doppelpunkt zu bekommen.

Beispiel eines solchen Textblocks.
VAR_INPUT
FahrzeitVor : INT ; //Maximale Fahrzeit für Vor in 0,5s-Schritten
FahrzeitZurueck : INT ; //Maximale Fahrzeit für Zurück in 0,5s-Schritten
AutomatikVorBefehl : BOOL ; //Befehl für Vor von der Automatik
FehlerNrFreigabeBewegung : INT ;/Fehlernummer Bewegungsfreigabe fällt während Bewegung ab
END_VAR


Danke für euer Bemühen
Otmar
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.04.2004, 11:28 Uhr
theosoft



Es handelt sich um Text-Dateien. Ich würde die Quelldatei zum Lesen öffnen. Eine Zieldatei zum Schreiben öffnen.
Dann Quelldatei zeilenweise lesen. Wenn VAR_INPUT vorkommt die Zeilen solange nach Zieldatei schreiben, bis END_VAR gekommen ist.
Und so weiter bis Quelldatei am Ende (eof()). Dann anstandshalber die Dateien schließen.

Viel Erfolg, Theo
--
ifS (immer fröhliches Schaffen)
theosoft
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.04.2004, 13:49 Uhr
Otmar



Hallo Theo,
Danke für die Antwort aber,
wie lese ich Zeilenweise bzw. wie erkenne ich wann der Textblock beginnt bzw wann er endet.
Einige Zeilen Quellcode währen toll.

Bis bald,
Otmar
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.04.2004, 18:56 Uhr
theosoft



OK, was hälst du davon die Datei in eine ListBox1 zu schreiben und je nach deiner Bedingung die einzelnen Strings denen einer ListBox2 zuzuweisen.
Die ListBox2 speicherst du dann ab. Etwa so:

Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  ListBox1->Items->LoadFromFile("quelle.txt");
  int i1 = 0;
  int i2 = 0;
  while(i1 < ListBox1->Items->Count)
  {
    if(ListBox1->Items->Strings[i1] ==  "VAR_INPUT")
    {
      ListBox2->Items->Strings[i2] = ListBox1->Items->Strings[i1];
      i1++;
      i2++;
      while(ListBox1->Items->Strings[i1] != "END_VAR")
      {
        ListBox2->Items->Strings[i2] = ListBox1->Items->Strings[i1];
        i1++;
        i2++;
      }
      ListBox2->Items->Strings[i2] = ListBox1->Items->Strings[i1];
      i1++;
      i2++;
    }
    i1++;
  }
  ListBox2->Items->SaveToFile("ziel.txt");
}


Sicher noch nicht ausgereift ... aber so kanns im Prinziip laufen.
viel Erfolg, Theo
--
ifS (immer fröhliches Schaffen)
theosoft
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.04.2004, 18:58 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Im BCB am einfachsten mit TStrings. Erstellen, dann LoadFromFile(...), dann durch die Zeilen iterieren.

Mit Standard-C++ über ifstream und getline(stream, string);
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: