AnsiString direkt aus einem File füllen
-
das ging aber schnell, danke.
Ich verwende jetzt:
TStringList *TestList = new TStringList;
... Open Dialog ....
TestList->LoadFromFile(opdMain->FileName);
.... programm ....
delete TestList;
allerdings hat TestList jetzt immer komische zeichenfolgen, anstatt des selektierten textes inne.
was mache ich da falsch???
sorry, aber aus der borland hilfe werd ich nicht klug...danke.
-
Original erstellt von ClippingError:
allerdings hat TestList jetzt immer komische zeichenfolgen, anstatt des selektierten textes inne.Wie bitte?
-
Was ist das denn für 'ne Datei(wie erstellst du sie?)?
-
ich nehme irgendeine datei. Der genaue Inhalt ist noch egal, den will ich später zwar mal parsen, aber soweit bin ich noch nicht.
Also in meiner testDatei steht "hallo".
laut debugger lautet der inhalt TestList allerdings "015AAC84"
Die Datei habe ich mir dem texteditor von Windows erstellt.
-
Ich darf meinen ersten Beitrag zitieren: "Über die Text-Property der StringList kannst du dann auf den gesamten Inhalt als einzelnen String zugreifen."
-
und so wie du sagst geht es jetzt auch.
folgendermaßen komme ich drann:
Memo1->Lines->Add(TestList->GetText());Danke!
-
folgende Funktion:
AnsiString getfile(AnsiString filename) { TFileStream* file = new TFileStream(filename,fmOpenRead); // Datei öffnen AnsiString content; // hier wird der Inhalt gespeichert char buffer[1]; // zum lesen while(file->Position<file->Size) { file->Read(buffer,sizeof(buffer)); content += buffer[0]; } return content; }
Anwendung:
AnsiString dateiinhalt = getfile("c:/datei.txt");
cu Arne
-
Das ist aber ein bisschen lahm, immer nur ein Byte zu lesen.
-
Oha, jetzt wird aber das Rad neu erfunden. Hoffentlich wirds auch rund.
-
Auf jeden Fall hat es schon ein schönes rundes (Speicher)Loch.
Mal im Ernst, Arne, das willst du doch nicht wirklich jemandem zur Nachahmung empfehlen? Sieh dir alles noch mal genau an, das kannst du doch bestimmt besser.