![]() |
Wo ist der Fehler?? - copy/length et al
Liebe Leute,
ich finde den Fehler einfach nicht. Ich habe folgenden String:
Code:
Dann habe ich mir folgende Funktion gebastelt:
meinstring:= '{"completed_in":0.187,"max_id":136875806193483779,"max_id_str":"136875806193483779","next_page":"?page=2&max_id=136875806193483779&q=Konflikt&lang=de&rpp=100&include_entities=1","page":1,"query":"Konflikt","refresh_url":"?since_id=136875806193483779&q=Konflikt&lang=de&include_entities=1","results":[{"created_at"'
Delphi-Quellcode:
Bei folgender Abfrage
Function GibMirData(Quellstr, AnfangsTag, EndTag: string): string;
var start, ende: integer; begin start:= pos(AnfangsTag, Quellstr); ende:= pos(EndTag, Quellstr); result:= copy(Quellstr, start + length(AnfangsTag), ende-start - length(EndTag)+1); end;
Delphi-Quellcode:
bekomme ich aber nicht raus, was ich will (nämlich: 136875806193483779), sondern: ":13687580619348377
ergebnis:= GibMirData(meinstring, '"max_id":', ',"max_id_str":')
Warum? Bin für jeden Tipp dankbar! Schönen Abend Euch allen und beste Grüße aus HD, Frieder |
AW: Wo ist der Fehler?? - copy/length et al
Tipp:
- Debugger nehmen - schauen was überall für Werte rauskommen - vergleichen mit den Werten, welche du erwartest - Code so korrigien, daß die Werte stimmen - fertig Tipp 2: Das ist ein JSON-String. Nimm dir eine JSON-Klasse, laß' diese das ordentlich zerlegen und laß' dir den gewünschten Wert geben. |
AW: Wo ist der Fehler?? - copy/length et al
Zu Tipp1: hab ich alles schon gemacht, x-fach! Und das verrückte: Wenn ich z.B. einen String
Code:
habe, dann wird mir mit der Funktion auch das korrekte Ergebnis ausgegeben;
derstring:= 'linkerrandDASMEINTEXTrechterrand'
Delphi-Quellcode:
- nicht aber bei dem o.g. String! Daher hier das Posting..
ergebnis:= GibMirData(derstring, 'linkerrand', 'rechterrand')
// ergebnis = DASMEINTEXT Zu Tipp2: Ist mir bewusst. Aber für D5 habe ich keine json-Komponente/-Unit gefunden. Sonst könnte ich mir in der Tat viel Arbeit ersparen.. Danke und schöne Grüße, Frieder |
AW: Wo ist der Fehler?? - copy/length et al
Delphi-Quellcode:
result:= copy(Quellstr, start + length(AnfangsTag), ende - start - length(AnfangsTag));
|
AW: Wo ist der Fehler?? - copy/length et al
Na ja, du hast am Anfang ein Zeichen zu viel.
Wie wäre es mit
Delphi-Quellcode:
?
start + length(AnfangsTag) + 1
|
AW: Wo ist der Fehler?? - copy/length et al
Ich habe da mal ne ganz doofe Frage zu der Frage:
Welchen Zweck verfolgst du damit? mE macht es relativ wenig Sinn einen JSON-String so zu vergewaltigen :mrgreen: Nimm dir einfach mal eine JSON-Lib (z.B. ![]() |
AW: Wo ist der Fehler?? - copy/length et al
Moin zusammen,
also die bisherigen Vorschläge zum Code klappen alle nicht - mit dem json-String. - Bisher habe ich noch keine json-Lib gefunden, die mit D5 Prof. läuft. Ich versuche mal das Superobject und melde mich dann wieder.. Danke schon mal! Schöne Grüße, Frieder |
AW: Wo ist der Fehler?? - copy/length et al
Leider läuft bei mir auch das superobject nicht (Compileranweisung IF, ELSE usw. kennt D5 nicht).
Hat jemand noch eine Alternative? - Sonst bleibt mir eben doch nur das String-Gefrickel.. EDIT: Ok, ich hab den Fehler im Code..aber keine Ahnung, warum es in einem anderen Programm bislang einwandfrei funktionierte.. :glaskugel: Danke und schöne Grüße, Frieder |
AW: Wo ist der Fehler?? - copy/length et al
Wäre ja mal gut, wenn du in deinem Profil deine Delphi-Version hinterlegen würdest ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 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