Znaczki zamiast enterów

Znaczki zamiast enterów
M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 85
0

Witam, mam taki mały problem i nie wiem jak się z niego uporać:

Kopiuj
 memo1.text := idhttp1.get('xxx')

dostaje zamiast enterów znaczki albo kwadraciki albo kreski przypominające I, gdy skopiuje tekst do wordpada i z powrotem to jest już dobrze.

olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
0

Dziwne, bo Memo w Delphi 7 potrafi pokazać prawidłowo tekst z pliku lub Streama jeżeli ten ma wszystkie znaki końca lini w postaci kodu ASCII #10 czyli tak jak dla Unixów/Linuxów czy Amig. Proponuje zapisać pobrany plik na chwilę na dysk i jakimś edytorem, który to umożliwia (może być Hex Edytor jakiś) sprawdzić jaki faktycznie jest ten znak końca linii, a później jego kod ASCII przed dodaniem do Memo zamienić funkcją StringReplace na z kodów tego znaku (po konwersji na system dziesiętny) na standardowy windowsowy koniec linii, czyli #13#10. Jak użyć StringReplace pewnie wiesz, a jak nie wiesz to Help z IDE albo google i jazda :) Innego pomysłu nie mam. Czasami może jeszcze pomóc ustawienie jakiegoś typowego UserAgenta na przykład dla Opery, bo wtedy pliki mogą mieć w ogóle znak końca linii, a wcześniej wcale go nie posiadać i tekst będzie jednym zbitkiem znaków (z takim czymś spotkałem się na FaceBook'u przy pobieraniu Synapse plików typu JOMS - tak to się chyba fachowo zwie).

M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 85
0

Już zrobiłem troche nie profesjonalnie ale dało rade, tzn. W edita dałem tą kreskę, dodałem stringreplace i działa.
memo1.text := stringreplace(memo1.text,r.Text,#13#10,[rfReplaceAll, rfIgnoreCase]);

olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
0

To najlepiej zrób sobie na chwilę przycisk i jak będziesz miał wpisaną tę "kreseczkę" w Edit1 (jeżeli to jeden znak) to poniższym sposobem sprawdzisz jaki ma kod ASCII i możesz później go użyć przy zamienianiu ze StringReplace.

Kopiuj
  ShowMessage(IntToStr(Ord(Edit1.Text[1])));
M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 85
0

I tak można :] Dzięki

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.