A
Jansen hats ja bereits gesagt, wenn du dass Memo wieder löschst, dann steht wohl auch nichts drin außer der letzte Buchstabe, und jetzt schalte ich mal meine Kristallkugel an, und sage dir, dass deine test.txt genau 4 Zeilen hat, stimmt's???
Dass der AnsiString-Index bei 1 Anfängt ist klar, ich hab mal rumprobiert, es funktioniert auch mit allen niedrigeren Zahlen, habs mal mit -23 probiert... Das soll jetzt nicht heißen, dass man es nicht richtig machen sollte...
Und ich würde das ganze so machen, um mir etwas Schreibarbeit zu ersparen:
TStringList* lines = new TStringList();
lines->LoadFromFile ("C:\\test.txt");
for(int i=0; i<lines->Count; i++)
Memo1->Lines->Add(lines->Strings[i][1]);
delete lines;
Das sind jetzt ganze 6 Zeilen weniger...
PS: Mit delete lines gibst du die TStringList wieder frei. Jetzt dürfte dir klar sein, dass es da stehen muss, wo du die List nicht mehr benötigst...