Podwójny apostrof w Delphi Xe3

Podwójny apostrof w Delphi Xe3
  • Rejestracja: dni
  • Ostatnio: dni
0

Panowie i panie mam problem typu dziwny..
Gdy używam podwójnego apostrofu w stringu w celu uzyskania pojedyńczego apostrofu w tekscie.. delphi itak zamienia mi go na podwójny apostrof :)

przykład:

Kopiuj
var
  sStr: String;
begin
sStr := 'Nie jadam w Mc''Donald.';
ShowMessage(sStr);

wyświetla: Nie jadam w Mc''Donald.
zamiast Nie jadam w Mc'Donald.

o co biega? :)
Nagle zaczęło się dziś tak dziać... nie robiłem żadnych aktualizacji, zmian ustawień ani niczego podejrzanego.. :)

dodanie znaczników <code class="delphi"> oraz `` - fp

  • Rejestracja: dni
  • Ostatnio: dni
0

Ten sam błąd objawia się nie tylko przy showmessage.. wszędzie! użyte do stworzenia zapytania SQL też się tworzy podwójnie przez co wywala się odpalenie zapytania :D

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
0

U mnie działa bez problemu (na starszej wersji Delphi); Hmm, dziwne to... Tymczasowo możesz użyć takiej konstrukcji:

Kopiuj
sStr := 'Nie jadam w Mc'#39'Donald.';

bo znak apostrofu w ASCII ma kod 39; Ale skoro także w zapytaniach wstawia cudzysłów zamiast apostrofu to coś jest nie tak w skali globalnej;

EDIT: Nie mam DelphiXE3 więc nie mam jak sprawdzić, ale spróbuj użyć czterech apostrofów:

Kopiuj
sStr := 'Nie jadam w Mc''''Donald.';

Być może dwa takie znaki nie są w ogóle parsowane, czyli uznane za część łańcucha.

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
1

u mnie działa D XE3
delphi1.png

  • Rejestracja: dni
  • Ostatnio: dni
0

No dokładnie.. nie wiadomo czego szukać.. przepatrzyłem wszystkie ustawienia delphi i windowsa.. nie ma NIC co by mogło mieć z tym coś wspólnego.. podejrzewałem że klawiatura płata figle i wstawia znak o innym kodzie a tym samym wyglądzie .. niestety nie.. restart delphi nie pomaga.. restart kompa nie pomaga..
Daję sobie jeszcze godzinę, dwie.. a potem reinstall delphi.. :/

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
0

przepatrzyłem wszystkie ustawienia delphi i windowsa.. nie ma NIC co by mogło mieć z tym coś wspólnego..

System nie ma tutaj nic do tego, bo komunikaty z klawiatury płyną poprawnie, właściwe znaki są podawane i wpisywane do edytora kodu; Klawiatury przecież nie masz przemapowanej, bo wciskając klawisz apostrofa w edytorze kodu pojawiałby się inny znak i byś od razu wiedział, że coś jest nie tak;

Obstawiam, że problem leży w kompilacji, bo łańcuchy nie są poprawnie parsowane, więc póki co jedynym sensownym rozwiązaniem okazuje się reinstall środowiska - być może znów nauczy się poprawnie analizować kod :]

  • Rejestracja: dni
  • Ostatnio: dni
0

No i pomogło :/ czyli XE coś ześwirowało.. tylko zastanawiam się co było przyczyną bo jeśli by się nie daj boże powtarzał problem to jakoś nie widzę co chwila reinstalowania całego środowiska :/

Dzięki za pomoc..

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
0

Skoro pomogło to dobrze - raczej nie musisz się martwić, że taka sytuacja będzie się często powtarzać.

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

Ale pisze się McDonald's a nie Mc'Donald...

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.