2009-09-02 2 views
5

Szukałem przyczyny, dla której maksymalna długość ciągu w TMemo.Lines wynosi 1024, ale jeszcze nie znaleziono.Maksymalna długość ciągu znaków w własności Delphi Linie TMemo

Mam plik tekstowy zawierający dane rozdzielone/csv, których długość wynosi około 2000 znaków. Używam memo, aby wyświetlić podgląd, zanim przetworzę plik.

memo.Lines.LoadFromFile (textFile);

Ustawiłem WordWrap na FALSE, a scrollBar na ssHorizontal. Więc każdy rekord nie zostanie zawinięty do następnej linii.

Ale kiedy Ieruję linie memo.Lines, stwierdziłem, że maksymalna wartość ciągu znaków w każdym indeksie wynosi 1KB lub 1024 znaki. Reszta jest obcinana do następnej linii.

Ale jeśli użyję TStringList do załadowania pliku, wiersz nie zostanie obcięty do następnego indeksu, gdy osiągnie więcej niż 1024 znaki. Tak się nie dzieje, gdy używam TRichEdit.

  1. Ktoś może wyjaśnić to zjawisko?
  2. Czy to domyślne zachowanie TMemo?

Używam D2006, aby spróbować.

Odpowiedz

1

WishKnew spróbować tego linki

https://forums.embarcadero.com/thread.jspa?threadID=14035

http://www.borlandtalk.com/line-length-in-tmemo-vt67596.html

http://groups.google.com/group/borland.public.delphi.vcl.components.using/browse_thread/thread/318fe3240d2860ba

jako wielki Peter Poniżej mówi:

... To nie ma nic wspólnego z limit długości linii wygląd. Ten limit jest po prostu wizualny, spowodowany przez sposób, w jaki kontrolka renderuje swój tekst.

Pa.

+9

-1 do publikowania linków bez żadnego wyjaśnienia lub streszczenia. –

+0

Aktualną odpowiedź można znaleźć tutaj: http://support.microsoft.com/kb/74225 –

1

Jest odpowiedź TeamB na tym wątku: https://forums.embarcadero.com/thread.jspa?threadID=14035

Jestem zaskoczony, że TStringList nie działa dla Ciebie. Nie jestem pewien, co masz na myśli przez

wiersz nie jest obcięty do następnego indeksu, gdy osiągnie ponad 1024 znaków.

Zakładam, że linie są rozdzielane znakami nowej linii lub listami CRLF. Dlaczego miałoby to znaczenie, gdyby linia CSV przekroczyła 1024 znaki? Opublikuj więcej szczegółów.

+0

Używam TMemo do podglądu pliku, zanim go przetworzę. Pamiętasz, kiedy próbujemy otworzyć plik tekstowy za pomocą programu Excel? Istnieje kreator, który wyświetla podgląd zawartości pliku i pomaga nam podzielić wiersze itp.? Nie mam problemu z TStringList ani z TRichEdit. Problem pojawia się, gdy używam TMemo.Z powyższego linku i RRUZ, TRICHEdit ma podobne ograniczenie, ale ma 4096 maks. – WishKnew

+1

To ma sens. Jedną opcją byłoby załadowanie go za pomocą TStringList, a następnie wyświetlenie pierwszych n znaków w TMemo (zakładając, że użytkownik musi tylko wybrać ogranicznik). Inną możliwością jest ponowne załadowanie za pośrednictwem TStringList, ale wyświetlanie niezaplanowanych wyników w siatce. Nie wiem, czy ta kontrola ma ograniczenia. Możesz użyć TRichEdit lub wyszukać niestandardowy formant, który nie ma tego ograniczenia. Wiele lat temu miałem kontrolkę Delphi innej firmy, która działała jak kreator importu Excela, ale nie pamiętam nazwy. – TrueWill