AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Doppelte Hochkommata

Ein Thema von tewes · begonnen am 26. Apr 2023 · letzter Beitrag vom 27. Apr 2023
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Doppelte Hochkommata

  Alt 27. Apr 2023, 09:54
Was passiert, wenn man die doppelten einfachen Hochkommata auswechselt auf doppelte Hochkommata chr(34) ?
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
tewes

Registriert seit: 31. Jan 2007
25 Beiträge
 
#12

AW: Doppelte Hochkommata

  Alt 27. Apr 2023, 10:33
Was passiert, wenn man die doppelten einfachen Hochkommata auswechselt auf doppelte Hochkommata chr(34) ?
So
s := ReplaceStr(dmsDocObj.URL, '''''', '""'); bleiben die doppelten einfachen Hochkommata
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.419 Beiträge
 
Delphi 7 Professional
 
#13

AW: Doppelte Hochkommata

  Alt 27. Apr 2023, 10:54
So
s := ReplaceStr(dmsDocObj.URL, '''''', '""'); bleiben die doppelten einfachen Hochkommata
Daraus schließe ich jetzt einfach mal: Die doppelten Hochkommata '' sehen aus wie '' sind in Wirklichkeit aber keine, sondern etwas bisher Unbekanntes.
Delphi-Quellcode:
s := dmsDocObj.URL;
s2 := '';
for p := 1 to s.length do
begin
  s2 := Format('%s#%.3d',[s2,Ord(Copy(s, p, 1))]);
end;
ShowMessage(s2);
Was kommt da raus?

Steht dadrinne irgendwo #061#039#039#076#068#080#039#039?
Wenn nein, was sind die zwei Zeichen vor #076#068#080 und was die zwei Zeichen dahinter?

Die Url im Eingangspost läßt sich im FireFox ohne besagte Fehlermeldung aufrufen.

Poste bitte mal die Originalurl aus dmsDocObj.URL (alles ab /sap/) zwischen [code]hier die Url einfügen[/code]-Tags.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Doppelte Hochkommata

  Alt 27. Apr 2023, 11:15
Was passiert, wenn man die doppelten einfachen Hochkommata auswechselt auf doppelte Hochkommata chr(34) ?
So
s := ReplaceStr(dmsDocObj.URL, '''''', '""'); bleiben die doppelten einfachen Hochkommata
Sorry, habe zu kurz formuliert... ich meinte
Delphi-Quellcode:
StringReplace(dmsDocObj.URL, '''''', '"', [rfReplaceAll]);

... oder besser lesbar ...

StringReplace(dmsDocObj.URL, chr(39) + chr(39), chr(34), [rfReplaceAll]);
Also nur durch ein einziges doppeltes HK ersetzen.
Nr.1 Delphi-Tool: [F7]

Geändert von ConnorMcLeod (27. Apr 2023 um 11:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#15

AW: Doppelte Hochkommata

  Alt 27. Apr 2023, 11:58
Wird im Debugger das doppelte '' angezeigt, oder ist es wirklich drin?

Im Debugger sieht ein ab'cd natürlich aus wie 'ab''cd' , genauso wie im Quellcode, aber IM String ist natürlich nur ein '.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
tewes

Registriert seit: 31. Jan 2007
25 Beiträge
 
#16

AW: Doppelte Hochkommata

  Alt 27. Apr 2023, 12:00
Was passiert, wenn man die doppelten einfachen Hochkommata auswechselt auf doppelte Hochkommata chr(34) ?
So
s := ReplaceStr(dmsDocObj.URL, '''''', '""'); bleiben die doppelten einfachen Hochkommata
Sorry, habe zu kurz formuliert... ich meinte
Delphi-Quellcode:
StringReplace(dmsDocObj.URL, '''''', '"', [rfReplaceAll]);

... oder besser lesbar ...

StringReplace(dmsDocObj.URL, chr(39) + chr(39), chr(34), [rfReplaceAll]);
Also nur durch ein einziges doppeltes HK ersetzen.
Code:
'/sap/opu/odata/sap/Z_ISHMED_BASIC_API_SRV/documentsSet(Dokar=''LDP'',Doknr=''10043643970'',Doktl=''000'',Dokvr=''00'')/$value'
s := StringReplace(dmsDocObj.URL, chr(39) + chr(39), chr(34), [rfReplaceAll]); ergibt
Code:
'/sap/opu/odata/sap/Z_ISHMED_BASIC_API_SRV/documentsSet(Dokar=''LDP'',Doknr=''10043643970'',Doktl=''000'',Dokvr=''00'')/$value'
  Mit Zitat antworten Zitat
tewes

Registriert seit: 31. Jan 2007
25 Beiträge
 
#17

AW: Doppelte Hochkommata

  Alt 27. Apr 2023, 12:01
Wird im Debugger das doppelte '' angezeigt, oder ist es wirklich drin?

Im Debugger sieht ein ab'cd natürlich aus wie 'ab''cd' , genauso wie im Quellcode, aber IM String ist natürlich nur ein '.
Meine Beispiele sind mit "Wert kopieren" ausgelesen.
  Mit Zitat antworten Zitat
tewes

Registriert seit: 31. Jan 2007
25 Beiträge
 
#18

AW: Doppelte Hochkommata

  Alt 27. Apr 2023, 12:17
So
s := ReplaceStr(dmsDocObj.URL, '''''', '""'); bleiben die doppelten einfachen Hochkommata
Daraus schließe ich jetzt einfach mal: Die doppelten Hochkommata '' sehen aus wie '' sind in Wirklichkeit aber keine, sondern etwas bisher Unbekanntes.
Delphi-Quellcode:
s := dmsDocObj.URL;
s2 := '';
for p := 1 to s.length do
begin
  s2 := Format('%s#%.3d',[s2,Ord(Copy(s, p, 1))]);
end;
ShowMessage(s2);
Was kommt da raus?

Steht dadrinne irgendwo #061#039#039#076#068#080#039#039?
Wenn nein, was sind die zwei Zeichen vor #076#068#080 und was die zwei Zeichen dahinter?

Die Url im Eingangspost läßt sich im FireFox ohne besagte Fehlermeldung aufrufen.

Poste bitte mal die Originalurl aus dmsDocObj.URL (alles ab /sap/) zwischen [code]hier die Url einfügen[/code]-Tags.
Copy() ergänzt um Copy()[1]
Delphi-Quellcode:
s := dmsDocObj.URL;
s2 := '';
for p := 1 to s.length do
begin
  s2 := Format('%s#%.3d',[s2, Ord(Copy(s, p, 1)[1] )]);
end;
Code:
'#104#116#116#112#115#058#047#047#102#102#112#112#097#115#046#097#100#046#107#108#105#110#105#107#046#117#110#105#045#117#108#109#046#100#101#058#056#052#052#051#047#115#097#112#047#111#112#117#047#111#100#097#116#097#047#115#097#112#047#090#095#073#083#072#077#069#068#095#066#065#083#073#067#095#065#080#073#095#083#082#086#047#100#111#099#117#109#101#110#116#115#083#101#116#040#068#111#107#097#114#061#039#076#068#080#039#044#068#111#107#110#114#061#039#049#048#048#052#051#054#052#051#057#055#048#039#044#068#111#107#116#108#061#039#048#048#048#039#044#068#111#107#118#114#061#039#048#048#039#041#047#036#118#097#108#117#101'
Es steht nur jeweils ein #039 davor und danach. Damit wäre der String korrekt und ich muss den Fehler an anderer Stelle suchen...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#19

AW: Doppelte Hochkommata

  Alt 27. Apr 2023, 12:25
Wird im Debugger das doppelte '' angezeigt, oder ist es wirklich drin?

Im Debugger sieht ein ab'cd natürlich aus wie 'ab''cd' , genauso wie im Quellcode, aber IM String ist natürlich nur ein '.
Meine Beispiele sind mit "Wert kopieren" ausgelesen.
Wie gesagt, dann ist nur 1 Apostroph im String.
Angezeigt/kopiert wird die Schreibweise der String-Konstante.
Darum auch vorne und hinten noch je ein '


Wären es wirklich Doppelte, dann sähe es so aus
'/sap/opu/odata/sap/Z_ISHMED_BASIC_API_SRV/documentsSet(Dokar=''''LDP'''',Doknr=''''10043643970'''',Doktl=''''000'''',Dokvr=''''00'''')/$value'

'/sap/opu/odata/sap/Z_ISHMED_BASIC_API_SRV/documentsSet(Dokar=''LDP'',Doknr=''10043643970'',Doktl=''000'',Dokvr=''00'')/$value'
entspricht
/sap/opu/odata/sap/Z_ISHMED_BASIC_API_SRV/documentsSet(Dokar='LDP',Doknr='10043643970',Doktl ='000',Dokvr='00')/$value

die Konstante hätte aber auch z.B. so aussehen können
'/sap/opu/odata/sap/Z_ISHMED_BASIC_API_SRV/documentsSet(Dokar='#39'LDP'#39',Doknr='#39'10043643970'#39',Doktl='#39'000'#39',Dokvr='#39'00'#39')/$value'
oder in der ausführlichen Schreibweise
'/sap/opu/odata/sap/Z_ISHMED_BASIC_API_SRV/documentsSet(Dokar=' + #39 + 'LDP' + #39 + ',Doknr=' + #39 + '10043643970' + #39 + ',Doktl=' + #39 + '000' + #39 + ',Dokvr=' + #39 + '00' + #39 + ')/$value'
oder oder oder ...

Ein doppeltes '' in der String-Konstante ist ein '-Zeichen.
Ein einfaches ' am Anfang/Ende/Dazwischen ist der Anfange oder das Ende der Konstante.
Und ''' am Anfang oder Ende sind der Anfang/Ende plus ein '-Zeichen.


Ähnlich wie in C-Sprachen ein \-Zeichen als \\ in String-Konstanten steht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (27. Apr 2023 um 12:35 Uhr)
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
629 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Doppelte Hochkommata

  Alt 27. Apr 2023, 12:40
Hallo,

ich bekomme per REST folgende URL:
dmsDocObj.URL :=
https://ffppas.XXX.de:8443/sap/opu/o...entsSet(Dokar=''TUP'',Doknr=''10043430922'',Doktl=''000'',Dokvr=''00'')/$value
Das Problem ist einfach nur, dass weder ' noch " in einer URL zugelassen sind und diese URL-codiert werden müssen. Deine fertige URL müsste wie folgt sein: .../documentsSet(Dokar=%39LDP%39,Doknr=%3910043643970% 39 ... usw.

" entspricht %39 als urlcodierter Wert.

Alle hier erwähnten Lösungen konvertieren den Text in Delphi Syntax, aber lösen nicht den Grundfehler, dass die URL nicht korrekt codiert ist.

EDIT: Das letzte %39 in meienem obigen Beispiel darf kein Leerschlag enthalten! Also immer %39, da macht die Forumsoftware irgend was damit falsch.

Geändert von Rolf Frei (27. Apr 2023 um 12:43 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:21 Uhr.
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