Ĺadny brzuch
czy to jest poprawna petla
while wiersz[x] in [#32,#9] do
zawsze przy tym sypie mi sie program!!ma moze ktos lepszy pomysł jak wyeliminować spacje z pliku txt??
Hm... wydaje mi się, że wczoraj odpowiadałem już na podobnego posta, ale coś się gdzieś zawieruszyło... Domyślam się, że nadal chodzi o zastąpienie wielokrotnych spacji?
Robisz tak. Wczytujesz plik (najprościej do TStrings):
procedure OczyscPlik(FileName: String); var st: TStrings; i, j: Integer; s: String; begin st := TStringList.Create; try st.LoadFromFile(FileName); //teraz iterujemy po wszystkich linijkach pliku tekstowego for i := 0 to st.Count - 1 do begin //bieżąca linijka... s := st[i]; //powtarzamy zamianę podwójnej spacji na pojedynczą, //aż długość s przestanie się zmieniać (brak kolejnych zmian) repeat j := Length(s); s := StringReplace(s, ' ', ' ', [rfReplaceAll]); until (j = Length(s)); st[i] := s; //tutaj możesz sobie zapisać zmieniony plik... st.SaveToFile(FileName); finally st.Free; end; end;
Oczywiście, zamiast iterować po linijkach, możesz pętlę repeat..until wykonać od razu na całej zawartości pliku (st.Text).
Pzdr.
Procedure TForm1.Formatowanie; Var P : boolean; begin if Pos(' ',Edytor.Text)>0 then p:=true else P:=false; while P = true do begin Edytor.Text:=StringReplace(Edytor.Text,' ',' ',[rfReplaceAll]); if Pos(' ',Edytor.Text)>0 then p:=true else P:=false; end; end;
Chyba prościej. A w zasadzie nie ale ciut inaczej :D
Użytkownik statjacek edytował ten post 13 sierpień 2006, 16:07
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
while wiersz[x] in [#32,#9] do
zawsze przy tym sypie mi sie program!!ma moze ktos lepszy pomysł jak wyeliminować spacje z pliku txt??
Hm... wydaje mi się, że wczoraj odpowiadałem już na podobnego posta, ale coś się gdzieś zawieruszyło... Domyślam się, że nadal chodzi o zastąpienie wielokrotnych spacji?
Robisz tak. Wczytujesz plik (najprościej do TStrings):
procedure OczyscPlik(FileName: String); var st: TStrings; i, j: Integer; s: String; begin st := TStringList.Create; try st.LoadFromFile(FileName); //teraz iterujemy po wszystkich linijkach pliku tekstowego for i := 0 to st.Count - 1 do begin //bieżąca linijka... s := st[i]; //powtarzamy zamianę podwójnej spacji na pojedynczą, //aż długość s przestanie się zmieniać (brak kolejnych zmian) repeat j := Length(s); s := StringReplace(s, ' ', ' ', [rfReplaceAll]); until (j = Length(s)); st[i] := s; //tutaj możesz sobie zapisać zmieniony plik... st.SaveToFile(FileName); finally st.Free; end; end;
Oczywiście, zamiast iterować po linijkach, możesz pętlę repeat..until wykonać od razu na całej zawartości pliku (st.Text).
Pzdr.
Procedure TForm1.Formatowanie; Var P : boolean; begin if Pos(' ',Edytor.Text)>0 then p:=true else P:=false; while P = true do begin Edytor.Text:=StringReplace(Edytor.Text,' ',' ',[rfReplaceAll]); if Pos(' ',Edytor.Text)>0 then p:=true else P:=false; end; end;
Chyba prościej. A w zasadzie nie ale ciut inaczej :D
Użytkownik statjacek edytował ten post 13 sierpień 2006, 16:07