Jak zrobić aby w richedit po wpisaniu tekstu np po 60 znakach automatycznie wstawial enter, albo w jaki sposób określić ilość znaków w lini?
<delphi>If (Length(RichEdit.Lines[0]) = 60) or (Length(RichEdit.Lines[0]) > 60) then
RichEdit.text := RichEdit.text + #13#10; <delphi>
POPRAWIŁEM :)
Tam gdzie jest [0], to dajesz numer linijki
Niestety nie działa to tak jak chciałem (jeśli jest wczytywany plik i wstawiam poprawki w nim to nic sie nie dzieje)
Raczej w onchange coś takiego:
if Length(Memo.Text)>=60 then
//wstawianie
Natomiast nie pamiętam, czy length liczy też znaki #13#10.
Natomiast nie pamiętam, czy length liczy też znaki #13#10.
#13 liczy jako 2 znaki (bo to enter), tylko niewiem co z #10, ale chyba to w richedit i memo robi się jako jedność, i powstają 2 znaki :)
A co do samego wczytania tekstu z pliku żeby co 60 znak przechodził do kolejnej lini to mam taki kodzik (może niezbyt poprawnie napisany ale działa) :
procedure TForm1.Button1Click(Sender: TObject);
var TF: TextFile;
i: Integer;
c:array of char;
begin
assignFile(TF,'NazwaPliku.txt');
try
reset(TF);
setLength(c,SizeOf(TF)); //ustawia długość tablicy
for i:=1 to SizeOf(TF) do
begin
read(TF,c[i]);
if eof(TF) then exit; // jeśli napotka koniec pliku to wychodzi z niego
If (i mod 60=1) then // co 60 znak przechodzi do kolejnej lini
begin
RichEdit1.Lines.Add('');
RichEdit1.Text:=RichEdit1.Text+c[i];
end
else
RichEdit1.Text:=RichEdit1.Text+c[i];
end;
finally
CloseFile(TF);
end;
end;
end.
Natomiast nie pamiętam, czy length liczy też znaki #13#10.
#13 liczy jako 2 znaki (bo to enter), tylko niewiem co z #10, ale chyba to w richedit i memo robi się jako jedność, i powstają 2 znaki :)
#13 - (CR) - ogranicznik wiersza
#10 - (LF nie mylić z Łukaszem :-D ) - znak który może lecz nie musi wystąpić po #13
#13 - (CR) - ogranicznik wiersza
#10 - (LF nie mylić z Łukaszem :-D ) - znak który może lecz nie musi wystąpić po #13
Czyli mówie.. liczy jako 2 znaki