AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Doppelte Hochkommata

Ein Thema von tewes · begonnen am 26. Apr 2023 · letzter Beitrag vom 27. Apr 2023
Antwort Antwort
Seite 1 von 2  1 2   
tewes

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

AW: Doppelte Hochkommata

  Alt 27. Apr 2023, 09:10
Vielen Dank für die Lösungsvorschläge!

Das habe ich versucht:
s := dmsDocObj.URL.DeQuotedString; // Vorschlag Uwe Raabe
s := StringReplace(dmsDocObj.URL, '''''', '''', [rfReplaceAll]); // Vorschlag IceBube
s := StringReplace(dmsDocObj.URL, #$27#$27, #$27, [rfReplaceAll]); // Vorschlag milos
s := ReplaceStr(dmsDocObj.URL, #39#39, #39); // Vorschlag himitsu
s := AnsiDequotedStr(dmsDocObj.URL, ''''); // Vorschlag himitsu

Leider keine Änderung.


Wenn ich im Debugger auf "Wert ändern" gehe und jeweils die beiden Hochkommata gegen einzelne austausche
'https://ffppas.XXX.de:8443/sap/opu/odata/sap/Z_ISHMED_BASIC_API_SRV/documentsSet(Dokar='LDP',Doknr='10043643970',Doktl ='000',Dokvr='00')/$value'

wird hinter "Dokar=" alles abgeschnitten
'https://ffppas.XXX.de:8443/sap/opu/odata/sap/Z_ISHMED_BASIC_API_SRV/documentsSet(Dokar='
  Mit Zitat antworten Zitat
tewes

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

AW: Doppelte Hochkommata

  Alt 27. Apr 2023, 09:17
Auch dies
for var i := 1 to S.Length do if Copy(S, i, 2) = '''''then Delete(S, i, 1); hilft leider nicht.
  Mit Zitat antworten Zitat
tewes

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

AW: Doppelte Hochkommata

  Alt 27. Apr 2023, 09:52
Delphi-Quellcode:
s := dmsDocObj.URL;
for p := 1 to s.length do
begin
  s2 := Copy(s, p, 2);
  if s2 = '''''then
    Delete(s, p, 1); // Vorschlag himitsu
end;
s2 wird im interessanten Bereich (Dokar=''LDP'') nacheinander
'Do'
'ok'
'ka'
'ar'
'r='
'='''
'''L'
'LD'

if s2 = '''''then wird nie wahr

Delphi-Quellcode:
s := dmsDocObj.URL;
for p := 1 to s.length do
begin
  s2 := Copy(s, p, 2);
  if s2 = '=''then
    Delete(s, p+1, 1);
end;
löscht die beiden führenden Hochkommata (gekürzt):
'Dokar=LDP''......
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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 '.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
tewes

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

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
Benutzerbild von himitsu
himitsu

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

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.
Ein Therapeut entspricht 1024 Gigapeut.

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

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

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
 
#8

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.555 Beiträge
 
Delphi 7 Professional
 
#9

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
tewes

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

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
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz