AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein An alle Programmierhengste: XML lesen
Thema durchsuchen
Ansicht
Themen-Optionen

An alle Programmierhengste: XML lesen

Ein Thema von golffahrer · begonnen am 5. Apr 2011 · letzter Beitrag vom 6. Apr 2011
Antwort Antwort
golffahrer

Registriert seit: 5. Apr 2011
12 Beiträge
 
#1

AW: An alle Programmierhengste

  Alt 5. Apr 2011, 14:31
Die Frage ist ja, was an meinem Code falsch ist. Es funktioniert ja. Nur bei einem Artikel verabschiedet sich das Tool. Eine Datenbegrenzung kann ja nicht die Ursache sein, oder!?
Was genau für Infos braucht Ihr, damit wir das Problem lösen können!?

P.S.: Viele Wegen führen nach Rom!
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

AW: An alle Programmierhengste

  Alt 5. Apr 2011, 14:34
Erst einmal wäre es sehr nett von dir, wenn du deinen Code in die Tags [DELPHI] und [/DELPHI] verpackst, damit man ihn auch besser lesen kann. Danke.

Und dann darfst du auch gerne mal verraten, in welchem Format die Daten denn nun vorliegen.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
golffahrer

Registriert seit: 5. Apr 2011
12 Beiträge
 
#3

AW: An alle Programmierhengste

  Alt 5. Apr 2011, 14:41
Also, ich sende einen Befehl zum Server des Lieferanten, dann bekomme ich XML zurück. Ich entnehme mir die Daten
aus den entsprechenden XML-Knoten und packe Sie in meine Datenbank. Wie gesagt, es funktioniert alles nur bei
einem Produkt hängt er sich auf und macht nicht mehr weiter. Ich denke es liegt an dem etwas längerem Datenblatt.
Das ist der einzige Unterschied.
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#4

AW: An alle Programmierhengste: XML lesen

  Alt 5. Apr 2011, 14:44
  1. Wo gibst du die TStringStreams wieder frei, die du erzeugst?
  2. Wieso kommt der Block if Pos('<BODY>', BodyJvRichEdit.text) <> 0 then zwei mal vor?
  3. Ein XML-Parser ist die bessere, einfachere und stabilere Wahl
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
golffahrer

Registriert seit: 5. Apr 2011
12 Beiträge
 
#5

AW: An alle Programmierhengste: XML lesen

  Alt 5. Apr 2011, 14:58
1. Ich gebe Sie nirgends frei.
2. Da ich den Inhalt zwischen dem <body> Tag benötige und der mir aber bei einigen Artikel in groß und klein vorliegt, habe ich es 2 Mal.
3. Was genau soll bei einem externen XML-Parser stabiler sein!?
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#6

AW: An alle Programmierhengste: XML lesen

  Alt 5. Apr 2011, 15:03
@golffahrer:
Dann gib sie mal schnell frei
Z.B. erübrigt sich mit einem Parser das Problem mit der Groß-/Kleinschreibung. Schön, dass du die Fälle "body" und "BODY" verarbeiten kannst, was aber wenn es mal "Body" heißt? Oder was, wenn der Tag <body> auch mal wo anders benutzt wird, dann findest du das, anstatt den, den du eigentlich möchtest etc. etc. ...


@roboter202:
Und wieder was dazugelernt
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: An alle Programmierhengste: XML lesen

  Alt 5. Apr 2011, 15:05
zu 3. Da kannst Du Dir alle verrenkungen Mit Pos und Copy schenken!
zu 2. siehe 3 bzw Uppercase() bzw. CompareText....
zu 1. Wenn Du meinst ....

Gruß
K-H

@DeepSea:
Kannst Du das mal im Klartext machen?
ich hab kein [parse] gesehen
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
golffahrer

Registriert seit: 5. Apr 2011
12 Beiträge
 
#8

AW: An alle Programmierhengste: XML lesen

  Alt 5. Apr 2011, 15:11
Das Freigeben bringt auch nichts.

Es gibt nur <body> in klein und <BODY> in groß, daher nur die 2 Anweisungen.

Gut, dann hat der Parser nichts mit dem eigentlichen Problem zu tun.

Jemand eine Idee!?
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#9

AW: An alle Programmierhengste: XML lesen

  Alt 5. Apr 2011, 15:17
@p80286:
Wie was?! Alles, was du in [NOPARSE] und [/NOPARSE] schreibst, wird eben nicht nach BB-Code geparst, dann kann man eben auch [DELPHI] oder [/DELPHI] schreiben.


Das Freigeben bringt auch nichts.
Doch: Es gibt kein Speicherleck mehr!
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: An alle Programmierhengste: XML lesen

  Alt 5. Apr 2011, 14:52
Du solltest, glaube ich, Deinen code einmal kritisch überprüfen:
Delphi-Quellcode:
BodyJvRichEdit.Text := PostDataStream.DataString;
if Pos('<BODY>', BodyJvRichEdit.text) <> 0 then
begin
  Start := Pos('<BODY>', BodyJvRichEdit.text)+7;
  Ende := Pos('</BODY>', BodyJvRichEdit.text);
  Body := Ende - Start;
  bodytext := copy(BodyJvRichEdit.text, Pos('<BODY>', BodyJvRichEdit.Text)+6, Body+1);
  ArtikelAdsTable.FieldByName('Infotextbody').AsStri ng := bodytext;
end;
if Pos('<body>', BodyJvRichEdit.text) <> 0 then
begin
  Start := Pos('<body>', BodyJvRichEdit.text)+7;
  Ende := Pos('</body>', BodyJvRichEdit.text);
  Body := Ende - Start;
..
Da scheint einiges redundant zu sein.
wie wäre es mit
Delphi-Quellcode:
Start:=Pos('<BODY>',uppercase(BodyJvRichEdit.text));
if Start>0 then ...
warum eigentlich ein Richedit? Eine Stringlist würde es doch auch tun?

Gruß
K-H

Edith:
Ich entnehme mir die Daten
aus den entsprechenden XML-Knoten und packe Sie in meine Datenbank..
Dann sollte man vielleicht doch einen Parser nutzen?

Wie gesagt, es funktioniert alles nur bei
einem Produkt hängt er sich auf und macht nicht mehr weiter. Ich denke es liegt an dem etwas längerem Datenblatt.
Das ist der einzige Unterschied.
Gewissheit könnte hier ein Debugger verschaffen

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 ( 5. Apr 2011 um 14:56 Uhr)
  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 00:33 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