Plik .txt - dziwna zawartość po zapisie zawartości RichEdit

0

Do pliku tekstowego dodaje mi takie coś(poniżej) dodatkowo niszczy polskie znaki
(tak wiem że tu jest rodzaj czcionka kodowanie znaków)
ale skąd to się wzięło i jak temu zapobiec

Na początku pliku .txt

{\rtf1\ansi\ansicpg1250\deff0{\fonttbl{\f0\fnil\fcharset238 Tahoma;}}
\viewkind4\uc1\pard\lang1045\f0\fs24

i na końcu

\par
}

Jest to widoczne tylko podglądając plik przez notatnik systemowy
i zapisany od teraz w TSaveDialogs (wcześniej tego nie było)

Nawet ten niby uszkodzony plik wczytując teraz do RichEdita
też jest wszystko ok są polskie znaki i nie ma tego powyżej

We wcześniejszych zapisanych plikach też tego nie ma.

Nie wiem może przełączyłam coś w properties TSaveDialogs
albo w ustawieniach Delphi nie mam pojęcia jednym słowem skąd to się wzięło.

Procedura zapisu ale raczej nie ona jest problemem

procedure TForm3.SaveFileClick(Sender: TObject);
 begin
  if SaveFile.Execute then
  RichEdit1.Lines.SaveToFile(SaveFile.FileName);
 end;
1

Te znaczki to style RTF, dzięki temu można formatować tekst np. kolorować, boldować itd. Ten format plików w Windowsie wyświetla program WordPad.

Jeżeli chcesz obrabiać zwykłe dokumenty tekstowe bez formatowania zamiast RichEdit używaj Memo. Ew. do nieobrobionego tekstu zdaje się możesz się dostać przez RichEdit.Text

1

Tak działa RichEdit. Chcesz czystych plików tekstowych, użyk Memo.

0
Ona:

Do pliku tekstowego dodaje mi takie coś(poniżej) dodatkowo niszczy polskie znaki

Nic nie niszczy, a zapisuje w nieco inny sposób, niż tego oczekujesz. Przy okazji - to nie są polskie znaki, a znaki diakrytyczne lub diakrytyzowane. Literka a też jest polskim znakiem, ale nie jest niczym nadzwyczajnym w kontekście kodowania ciągów znaków.

Nawet ten niby uszkodzony plik wczytując teraz do RichEdita
też jest wszystko ok są polskie znaki i nie ma tego powyżej

Skoro wszystko działa prawidłowo to dlaczego uważasz, że jest uszkodzony?

Nie wiem może przełączyłam coś w properties TSaveDialogs [...]

Już tłumaczyłem Ci kiedyś, że TSaveDialog nie ma żadnego znaczenia, jeśli chodzi o zapis czegokolwiek z pamięci do pliku. Klasa ta służy jedynie do pokazania okienka dialogowego na ekranie i zwrócenia łańcucha znaków z wybraną lokalizacją.

Pozmienianie czegokolwiek w obiekcie klasy TSaveDialog odbije się jedynie na wyglądzie, zawartości oraz sposobie obsługi samego okna dialogowego i nic więcej - w dalszym ciągu obiekt zwracać będzie tylko i wyłącznie ścieżkę w postaci łańcucha znaków. A to w jaki sposób z niej skorzystasz to już zupełnie inna sprawa, nie dotycząca już obiektu dialogu.


I na litość boską pisz po polsku, bo Twoje posty czyta się tragicznie... Używaj znaków interpunkcyjnych, nie łam ręcznie linii tekstu oraz pisz jasno i zrozumiale, tak aby nie trzeba było dziesięć razy czytać tego co napiszesz, aby zrozumieć co masz na myśli.

0

To teraz rozumiem dlaczego. Dziękuję.
Że RichEdit jest jak Worpad to wiedziałam nie sądziłam że pojawi się to w pliku otwieranym przez notatnik.
Mój błąd ale dziękuje za wyjaśnienie.

1
ŁF napisał(a):

Tak działa RichEdit. Chcesz czystych plików tekstowych, użyk Memo.

Memo ma duże ograniczenia co do ilości znaków (nie pamiętam ile a nie chce mi się szukać) jak chcesz czysty tekst w RichEdit użyj właściwości PlainText:

RichEdit1.PlainText:= True;
0

To Wystarczyło Dziękuję :)

RichEdit1.PlainText:= True;

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