Nie umiem sobie poradzić z jednym problemem podczas pisania małego programiku… Sytuacja wygląda tak:
Mam plik w:
C:/mój/plik.test
Jego zawartość wygląda tak:
552 1245 155 111 899 eof
Teraz moim celem jest wczytanie tego pliku do mojego programu, ale w taki sposób aby każda liczba była w oddzielnej linijce memo1. (“eof” też może być…)
Ta treść się zmienia (cyfry się zmieniają). Po prostu chce aby mój program wczytał to do memo ale w taki sposób jak poniżej:
552
1245
155
111
899
eof
Jak to zrobić? edit1 ------ O, albo prościej mówiąc, aby zareagował na odstęp i kolejną liczbę do kolejnego napotkanego odstępu przeniósł na nową linię w memo edit2 ------ Ok doszedłem do tego przy piwku i pomocy z innego forum… Kod wygląda tak:
function Explode(Str : string; Separator : string) : TStringList;
var
X : Integer;
begin
Result := TStringList.Create;
X := Pos(Separator, Str);
while X > 0 do
begin
Result.Add(Copy(Str, 1, X - 1));
if X <= Length(Str) then
begin
Str := Copy(Str, X + Length(Separator), Length(Str));
end;
X := Pos(Separator, Str);
end;
if (Length(Str) > 0) then
begin
Result.Add(Str);
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
var
inte, : integer;
sciezka : string;
statsall : TStringList;
begin
sciezka:=('C:/mój/plik.test');
Memo1.Lines.LoadFromFile(Sciezka);
statsall := Explode(Memo1.Lines.Text, ' ');
for inte := 0 to statsall.Count-1 do
begin
Memo1.Lines.Clear;
Memo1.Lines.AddStrings(statsall);
end;
end;
(za procedure “explode” thx dla olesio z innego forum) =D>
with Memo1.Lines do
begin
Memo1.Lines.LoadFromFile('C:/mój/plik.test');
Memo1.Lines.Text:=StringReplace(Trim(Memo1.Lines.Text),' ',#13,[rfReplaceAll]);
end;