[Delphi] Brak nowej lini w rekordzie?

0

Za pomocą PosEx kopiuje jakis fragment tekstu (zawiera kilka lini zrobionych enterem) . Po wpakowaniu do zmiennej a nastepnie z tej zmiennej do labelela wyswietla sie normalnie, natomiast jak przeniose z tej zmiennej do rekordu, a nastepnie z rekordu wyswietle w Memo to ju nie ma znaków nowej lini :\ , tekst jest "na kupie" a tam gdzie powinna sie zaczynac nowa linia (nowy wers) to jest jakis dziwny czarny wąski kwadrat. Dlaczego tak sie dzieje ?

0

Prześledź kod i sprawdź jak jest kod znaku który jest widoczny w miejscu w którym powinien być znak końca wiersza. Jeżeli są tam inne znaki niż te które powinny się tam znajdować czyli #13#10 (#$D#$A) to je po prostu zmień. Nie sprawdzałem teraz, ale samo #13 lub sam #10 powoduje własnie efekt który opisujesz.

0

Kurcze.... nie wiem co jest grane, chyba nie zrozumialem tego do konca. To troche dziwne, sytuacja wyglada tak, wpisuje jakis tekst w richedicie i buttonem dodaje calą zawartość do tablicy rekordów Notatka: String; oraz jej tytuł jako Temat: String i ten sam tytuł do ListView1. Dodałem #13#10 w procedurze dodawania:

with Dane[High(Dane)] do
    begin
    Temat:=LabeledEditTemat.Text;
    for i:=1 to RichEdit1.Lines.Count do
      begin
      Notka:=Notka+RichEdit1.Lines.Strings[i]+#13#10;
      end;
    end;

Wczesniej dodawałem Od razu cały text RichEdita przez RichEdit.Text ale pomyslalem że to tutaj wina wiec podzielilem dodawanie na każdą linie z osobna. Po wcisnieciu buttona "Zapisz" nastepuje zapis calej tablicy rekordów do pliku tekstowego:

procedure TfrmMain.WriteDate(const FileName: TFileName);
var
i: integer;
PlikTXT: TextFile;
begin
 assignfile(PlikTXT, FileName);
 rewrite(PlikTXT);
 for i:=Low(Dane) to high(Dane) do
  begin
  writeln(PlikTXT, '<TM>'+Dane[i].Temat+'</TM>');
  writeln(PlikTXT, '<NT>'+Dane[i].Notka+'</NT>');
  end;
  CloseFile(PlikTXT);
end;

Po takim zapisie zagladając do pliku wszystko jest ok (kolejne linie zaczynają sie w prawidłowych miejscach). Po ponownym otwarciu programu Dane z pliku zostają pobierane i ładowane ponownie do tablicy, teraz nawet gdy nie dokonam żadnych zmian i wcisne przycisk "Zapisz" zaglądając do pliku tekstowego ponownie cały tekst jest na jednej "kupie" a w miejscach gdzie powinna sie zaczynać nowa linia jest jakiś dziwny kwadrat i w zależnoći ile powinno być tych linie tyle jest kwadratów. Po kolejnym odpaleniu programu tekst w richedicie jest co prawda wyswietlany normalnie (są nowe linie) ale nie podoba mi sie ten bajzel w pliku tekstowym. Wydaje mi się ze bład leży w zapisie rekordu do pliku, powienienem chyba zapisywać kazdą linie rekordu osobno i dodawać na jej koncu #13#10 tylko nie wiem jak pobrać jedną linie w zmiennej typu String :/

EDIT: Już działa, wina lezała po stronie kodu odpowiedzialnego za odczyt :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1