Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie setzte ich ein Hochkomma als String? (https://www.delphipraxis.net/8929-wie-setzte-ich-ein-hochkomma-als-string.html)

Sharky 15. Sep 2003 20:40

Re: Wie setzte ich ein Hochkomma als String?
 
Zitat:

Zitat von Gambit
Tach!
Mal ne dumme Frage zwischendurch, wie setze ich ein Hochkomma als String. .....

Dafür gibt es, zumindest ab D5, die Funktion QuotedStr.

Finde ich besser als diese vielen '''''' :angle2:

Gambit 15. Sep 2003 20:51

Re: Wie setzte ich ein Hochkomma als String?
 
Wie mit dem Trennzeichen? So? 'onClick="self.location.href=''/ADOWebModul/DVDISAPI.dll/Reserv?FilmNr=' + ADODataSetFilmeFilmNr.AsString + '&' + '''">'

Funzt aber auch nicht...leider...

Gambit

anku 15. Sep 2003 21:35

Re: Wie setzte ich ein Hochkomma als String?
 
Versuch es mal mit nem Format, is am einfachsten
Delphi-Quellcode:
Format('onClick="self.location.href=%s/ADOWebModul/DVDISAPI.dll/Reserv?FilmNr=%s%0:s">', [#39, '25' ] );
du musst nur die '25' in dem werte array, durch dein ADODataSetFilmeFilmNr.AsString ersetzen.

mfg

Gambit 15. Sep 2003 21:59

Re: Wie setzte ich ein Hochkomma als String?
 
Schöner Versuch aber auch das funzt nicht. Trotzdem Danke! Es funzt, solange das Attach nicht verschlüsselt wird. Sobald ich verschlüssele, fehlt das letzte Hochkomma. Habs in allen Varianten versucht...
Das Merkwürdige ist, dass das letzte Hochkomma eigentlich gar nichts mit dem Attach zu tun hat. Das letzte Hochkomma wird ja nur hinten drangehängt.

Gambit

kasi 15. Sep 2003 22:11

Re: Wie setzte ich ein Hochkomma als String?
 
In einer URL wird ' als %27 (Hex-Code)
wird danhn sowas
Id=[9596-3411BFF-0B2951]&FilmNr=24%27

KASI

Gambit 15. Sep 2003 22:15

Re: Wie setzte ich ein Hochkomma als String?
 
Also ich denke es liegt daran: Der Verschlüsselungsmechanismus interpretiert das Hochkomma als Bestandteil der URL bzw. des Anhangs. Er verschlüsselt es daher mit. Ich müsste den String so aufbauen können, dass der Verschlüsselungsmechanismus das Hochkomma nicht als solches interpretiert. Wie weiß ich aber auch nicht...Vielleicht was für die Internetfreaks aber die lesen hier wohl nicht so oft mit, was?

Gruß

Gambit

Gambit 15. Sep 2003 22:48

Re: Wie setzte ich ein Hochkomma als String?
 
Hier mal ein Auszug aus der Unit, in der auch die Verschlüsselung des Attaches vorkommt:

Delphi-Quellcode:
{attach the user id string as the first paramter to all references of this ISAPI DLL}
  ChPos := FindSubStr(IsapiDllName, UpperCase(Response.Content), 1);
  while ChPos <> 0 do
    begin
    {copy out the URL}
    StartPos := ChPos + length(IsapiDllName);
    EndPos := FindSubStr('"', Response.Content, StartPos);
    S := copy(Response.Content, StartPos, EndPos-StartPos);

    {check if there are any parameters with this URL}
    ChPos := pos('?', S);
    if ChPos = 0 then
      Response.Content := copy(Response.Content, 1, StartPos-1) + S + '?Id=' + WebSession.GuidStr +
                          copy(Response.Content, EndPos, length(Response.Content))
    else
      begin
      {split the URL into its Action and Parameter pair}
      Action := copy(S, 1, ChPos-1);
      Parameters := copy(S, ChPos+1, length(S));
      ...
      end;
Knackpunkt scheint folgende Zeile zu sein:

Delphi-Quellcode:
EndPos := FindSubStr('"', Response.Content, StartPos);
Damit wird doch alles was vor dem " kommt als URL interpretiert, was ja auch in den allermeisten Fällen stimmt. Nur in diesem einen(meinem) Fall nicht.
Ich glaube da liegt der Hund begraben...

Gambit

Chewie 15. Sep 2003 23:29

Re: Wie setzte ich ein Hochkomma als String?
 
Ah, gut zu wissen, dass den Source der Verschlüsselung hast und entsprechend abändern kannst :wink:
Da ja mit der Position des Hochkommas gearbeitet wird, wird, wie du schon gesagt hast, alles bis vor das letzte Gänsefüßchen kopiert.

Wenn du weißt, dass ein Hochkomma vor einem Gänsefüßchen nie zu der URL (bzw. zu dessen Parametern) dazugehört, dann reicht es, wenn du einfach folgende Zeile hinter die von dir hervorgehobene Zeile einfügst:
Delphi-Quellcode:
if Response.Content[EndPos-1] = '''' then Dec(EndPos);
Eine saubere Variante wäre zu erfassen, ob als Attributsbegrenzer Hochkomata oder Gänsefüßchen verwendet wurden und dann das entsprechende Gegenstück am Ende zu suchen, anstatt sich nur auf Gänsefüßchen zu beschränken.

Gambit 15. Sep 2003 23:48

Re: Wie setzte ich ein Hochkomma als String?
 
Oh Mann!! Das wars!! Aber auf diese eine entscheidene Zeile wär ich wohl heute nicht mehr gekommen... :oops: (Morgen wahrscheinlich auch nicht :oops: :oops: )

Ich war ja schon am Verzweifeln, konnte ja nicht ahnen oder habs einfach nicht, dass der Verfasser der Unit an so einen Fall nicht gedacht hat...

Allerbesten Dank!! Was wäre ich ohne dieses Forum!!

Gambit


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:38 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz