Strings aus Datei lesen
-
Hi,
bin noch grün hinter den Ohren und schlage mich mit folgendem Problem herum.
Textdatei hat die Form:
String1 = "String2";
oder
String1 = Interger;
usw.
Suche nun nach geigneter Methode, um zunächst String1 in der Datei zu finden und im zweiten Schritt den zugewiesenen String2 bzw. Interger an einen Parameter im
Program übergeben zu können. Schwierigkeit: Dateiaufbau nicht änderbar, Zeilen-
position kann für den selben String immer andere sein, die Position der obigen
Zeichenketten innerhalb der jeweiligen Zeile ist unbekannt. Arbeite mit C++Builder5.0.
Hat jemand 'nen Tipp?
-
Hallo
TIniFile oder TStringList mit den AnsiString-Methoden (Pos, SubString...)
bis bald
akari
-
Ich habe damals so gemacht...
//--------------------------------------------------------------------------- //+++++ //8-4-2003 // #include <vcl.h> #pragma hdrstop #include "dicUnit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TDictionary *Dictionary; int i, Index; AnsiString adresse[2]; //--------------------------------------------------------------------------- __fastcall TDictionary::TDictionary(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TDictionary::BtnSuchenClick(TObject *Sender) { if(ChkDeutsch->Checked)//wenn Chkdeutsch geclick ist { TStringList * daten = new TStringList; //wird neue Tstringlist angelegt daten->LoadFromFile("Deutsch-English.txt");//hier wird die Wörter(Stringlist)geladet for (i = 0; i<= 402 ; i++) // eien arrays für 400 wörter { //die Stringliste wird hier gelesen und gesucht if(EdtGer->Text == daten->Strings[i]) EdtEng->Text = daten->Strings[i+1]; } delete daten; } if (ChkEnglisch->Checked) { TStringList *daten = new TStringList; //wird neue Tstringlist angelegt daten->LoadFromFile("Deutsch-English.txt");//hier wird die Wörter(Stringlist)geladet for (i = 0 ; i<=402 ; i++) // eien arrays für 400 wörter { ////die Stringliste wird hier gelesen, if(EdtEng->Text == daten->Strings[i]) EdtGer->Text = daten->Strings[i-1]; } delete daten; } } //--------------------------------------------------------------------------- void __fastcall TDictionary::BeendenClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TDictionary::FormCreate(TObject *Sender) { lblDate->Caption=""; lblDate->Caption =" Heute und Jetzt : " + Now(); } //---------------------------------------------------------------------------
Gruß,
nuam
-
Danke für die Hinweise - werd's mal versuchen.
Grüße
Ifs
-
Hallo,
also akari hat es bereits angesprochen; ich verwende eigentlich nur noch TIniFile (#include <IniFiles.hpp> nicht vergessen!). Schön zum Schreiben und Auslesen, zudem die Mögklichkeiten der Handhabung der verschiedenen Variablentypen mittels z.B. TIniFile::ReadBool() und TIniFile::WriteBool().
mfg cb