Datei öffnen und im RichEdit ausgeben
-
#include <vcl.h> #include <iostream.h> #include <fstream> void __fastcall TForm1::Open1Click(TObject *Sender) { if (OpenDialog1->Execute()) { ifstream datei (OpenDialog1->FileName.c_str()); for (int i =0; i<= 100; i++) { char c; AnsiString x = datei.get(); RichEdit1 -> Lines -> Add(x); } } }hier gibt mir das programm den inhalt der datei aus,
wenn ich auf das menue unter open drücke wähle ich eine datei aus die dann geöffnet wird,
aber wie kann ich:1- die BYTES der ganzen datei die ich auswähle herausfinden,
bzw.: die größe der datei in BYTES
2- und/oder wie greife ich auf die BYTES zu, char ??,
um dies anstatt die 100 in der for schleife anzugeben
zb.:String Wort; Wort.Length();3- wie sage ich der schleife das in der datei ein zeilenumbruch ist und
dies dann in der ausgabe genauso gemacht wird,wenn es immer nocht niemand verstanden hat, ich will einen EDITOR machen,
so wie NOTEPAD unter Windows, nur ist wichtig zu wissen wo ein bestimmtes zeichen steht,edit: hatte ein fehler
ifstream datei (OpenDialog1->FileName.c_str()); for (int i =0; i<= sizeof(datei); i++) { string c; c = datei.get(); AnsiString x = c.c_str(); RichEdit1 -> Lines -> Add(x); }
-
Hallo
ist das nicht einfacher
RichEdit1->Lines->LoadFromFile ("xxx.yyy");MfG
Klaus
-
Ja stimmt,
aber wie kann ich dann auf bestimmte Zeichen zugreifen ??
-
Hallo
siehe BCB-Hilfe zu TRichEdit::Lines, insbesondere TRichEdit::Lines::Strings.
bis bald
akari
-
for (int i = 0; i<=100; i++) { // Form2 -> RichEdit1 -> Lines -> Add(Form1 -> RichEdit1 -> Lines -> Strings[i]); RichEdit1->Lines->Strings[i]; }jetzt habe ich weider das problem mit der länge der datei,
dort wo 100 steht soll doch stehen bis wo der durchlaufen soll,und wenn ich eine datei mit NOTEPAD öffne sieht dort der inhalt anders aus als
bei mir, zumidest wenn ich nicht *.txt dateien öffne, da steht vielleicht viel müll drinne aber das will ich so haben,txt dateien gibt er mir ohne probleme aus,
aber soweit thx, habt mir geholfen,
hätte eigentlich selber kommen können, aber naja, danke
-
Hast du dir die Hilfe auch intensiv angeschaut? Sonst wärest du bestimmt über TStrings::Count gestolpert. Und wenn du weißt, dass du einen AnsiString zurückbekommst, kannst du gleich noch mit die Länge einer Zeile bestimmen.
-
Hallo,
versuch mal
RichEdit1->Lines->Count...