AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Wo ist der Fehler?? - copy/length et al
Thema durchsuchen
Ansicht
Themen-Optionen

Wo ist der Fehler?? - copy/length et al

Ein Thema von friedemann2009 · begonnen am 16. Nov 2011 · letzter Beitrag vom 17. Nov 2011
Antwort Antwort
friedemann2009

Registriert seit: 10. Feb 2010
49 Beiträge
 
#1

Wo ist der Fehler?? - copy/length et al

  Alt 16. Nov 2011, 20:41
Liebe Leute,

ich finde den Fehler einfach nicht. Ich habe folgenden String:
Code:
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"'
Dann habe ich mir folgende Funktion gebastelt:

Delphi-Quellcode:
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;
Bei folgender Abfrage

ergebnis:= GibMirData(meinstring, '"max_id":', ',"max_id_str":') bekomme ich aber nicht raus, was ich will (nämlich: 136875806193483779), sondern: ":13687580619348377

Warum?

Bin für jeden Tipp dankbar!

Schönen Abend Euch allen und beste Grüße aus HD,
Frieder

Geändert von friedemann2009 (16. Nov 2011 um 21:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Wo ist der Fehler?? - copy/length et al

  Alt 16. Nov 2011, 20:50
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
friedemann2009

Registriert seit: 10. Feb 2010
49 Beiträge
 
#3

AW: Wo ist der Fehler?? - copy/length et al

  Alt 16. Nov 2011, 21:18
Zu Tipp1: hab ich alles schon gemacht, x-fach! Und das verrückte: Wenn ich z.B. einen String
Code:
derstring:= 'linkerrandDASMEINTEXTrechterrand'
habe, dann wird mir mit der Funktion auch das korrekte Ergebnis ausgegeben;

Delphi-Quellcode:
ergebnis:= GibMirData(derstring, 'linkerrand', 'rechterrand')
// ergebnis = DASMEINTEXT
- nicht aber bei dem o.g. String! Daher hier das Posting..

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

Geändert von friedemann2009 (16. Nov 2011 um 21:21 Uhr)
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Wo ist der Fehler?? - copy/length et al

  Alt 16. Nov 2011, 21:24
result:= copy(Quellstr, start + length(AnfangsTag), ende - start - length(AnfangsTag));
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Wo ist der Fehler?? - copy/length et al

  Alt 16. Nov 2011, 21:25
Na ja, du hast am Anfang ein Zeichen zu viel.
Wie wäre es mit start + length(AnfangsTag) + 1 ?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Wo ist der Fehler?? - copy/length et al

  Alt 16. Nov 2011, 22:22
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
Nimm dir einfach mal eine JSON-Lib (z.B. SuperObject) zur Hand
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
friedemann2009

Registriert seit: 10. Feb 2010
49 Beiträge
 
#7

AW: Wo ist der Fehler?? - copy/length et al

  Alt 17. Nov 2011, 08:08
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
  Mit Zitat antworten Zitat
friedemann2009

Registriert seit: 10. Feb 2010
49 Beiträge
 
#8

AW: Wo ist der Fehler?? - copy/length et al

  Alt 17. Nov 2011, 08:21
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..

Danke und schöne Grüße,
Frieder

Geändert von friedemann2009 (17. Nov 2011 um 08:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Wo ist der Fehler?? - copy/length et al

  Alt 17. Nov 2011, 08:43
Wäre ja mal gut, wenn du in deinem Profil deine Delphi-Version hinterlegen würdest
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:38 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