Podwójny apostrof w Delphi Xe3

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:

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

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

0

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

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:

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

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

1

u mnie działa D XE3
delphi1.png

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.. :/

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 :]

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..

0

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

0

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

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