ďťż

Ładny brzuch

Mam mały problemik:/
Po wpisaniu textu do RichEdit dodawana jest na samym końcu pusta linia. Pytanie: Jak ją usunąć?

Mój program opiera się na komponencie RichEdit, Listbox i jednym pliku textowym. Wszystkie dane wpisywane do RichEdit dopisywane są do jednego pliku. Sami rozumiecie, po dodaniu 100 różnych opisów w RichEdit w pliku textowym tworzy mi się 100 pustych linii, które niepotrzebnie zwiększają rozmiar mojej bazy. Dlatego też ponawiam pytanie: Jak pousuwać ostatnie "niepotrzebne, puste" linie w RichEdit?

Jestem początkujący, dlatego proszę o wyrozumiałość:)



W jaki sposób dopisujesz do pliku ??

Zawsze możesz sprawdzić czy ostatnia linia RichEdita jest pusta i jeżeli jest to usunąć ją ...

do czego wykorzystujesz tu LIstBoxa, bo może on coś tu miesza. Przy przepisywaniu tekstu do pliku wyntnij znak konca wiersza i powrotu karetki
TReplaceFlags flag;        flag << rfReplaceAll;        DobryString = StringReplace(ZlyString,"\r\n", "",flag);

Witaj.

Niestety nie możesz użyć tu funkcji StringReplace, gdyż spowoduje to usunięcie znaków nowej linii także przy "właściwych" końcach linii. Proponuję tak:

var  i: cardinal;  vText: string; begin  vText := RichEdit1.text; //tekst RichEdita do zmiennej  for i := Length(vText) downto 0 do //sprawdzamy cały tekst od końca  begin    if (vText[Length(vText)] in [#13, #10]) then //jeśli ostatni znak jest końcem linii      Delete(vText, Length(vText), 1); //to go kasujemy  end;  RichEdit1.Text := vText; //i wstawiamy całość do RichEdit end;
Użytkownik p1101 edytował ten post 07 lipiec 2006, 10:51


no to może przecieżzastosować StringReplace na sotatnije lini. Wycina ostatnia linie, przepuszca ją przez StringReplace a następnie to co otrzyma dokleja do tekstu z którego ją odciął i całość wrzuca do pliku.

procedure TForm1.Button1Click(Sender: TObject); var liczbaWierszy : integer; wiersz : string; i : integer; begin LiczbaWierszy := RichEdit1.Lines.Count; for i := 0 to LiczbaWierszy -1 do begin wiersz := RichEdit1.Lines.Strings[i];  IF    wiersz = ''    then    RichEdit1.Lines.Delete(i); end; end;

O takie coś Ci chodziło ? Możesz sobie te procke wstawic np. przy uruchamianiu programu zeby usuwał puste linie w RichEdit, albo zaraz przed zapisem do pliku
Użytkownik Private edytował ten post 07 lipiec 2006, 14:06
@Private tylko, że tu chodzi o puste linie na końcu. Twój kod usunie też puste linie w środku tekstu - a co jeśli odstęp jednej linii jest w tekście zamierzony?

Jak sprawdzałem swój kod to działał bez zarzutów :)


@Private tylko, że tu chodzi o puste linie na końcu. Twój kod usunie też puste linie w środku tekstu - a co jeśli odstęp jednej linii jest w tekście zamierzony?


Jeśli to nie to, to sie więcej w tym temacie nie oddzywam bo nie bardzo czaje o co chodzi  :P No chyba ze mi ktoś wytłumaczy łopatologicznie :D

richedit1.Text:=trimright(richedit1.text);
Użytkownik krajew4 edytował ten post 07 lipiec 2006, 16:19

Mam mały problemik:/
Po wpisaniu textu do RichEdit dodawana jest na samym końcu pusta linia. Pytanie: Jak ją usunąć?

Mój program opiera się na komponencie RichEdit, Listbox i jednym pliku textowym. Wszystkie dane wpisywane do RichEdit dopisywane są do jednego pliku. Sami rozumiecie, po dodaniu 100 różnych opisów w RichEdit w pliku textowym tworzy mi się 100 pustych linii, które niepotrzebnie zwiększają rozmiar mojej bazy. Dlatego też ponawiam pytanie: Jak pousuwać ostatnie "niepotrzebne, puste" linie w RichEdit?

Jestem początkujący, dlatego proszę o wyrozumiałość:)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •