Einzelnen Beitrag anzeigen

klaus9

Registriert seit: 4. Dez 2011
123 Beiträge
 
#12

AW: Memo Feld export nach CSV

  Alt 26. Feb 2012, 13:00
Hi Popov deinen Tipp finde ich super..

habe heute mal nen bisschen rum probiert..

ich habe jetzt ne super idee rausgefunden.. bzw. gegoogelt.

Also ich habe eine Webseite da muß ich auf eine Tabelle die sich im HTML Text befindet. und pro Seite habe ich 50 Auftragsdaten untereinander geglidert, gesamt ca. 1500 Aufträge


Seite ist so ca. aufgebaut..

1-50, 51-100, 101-150, 151-200.... usw. bis 1451-1500 (Das sind jeweils Links zu den 50er Blöcken Aufträgen!


Der Aufbau ist wie bereits schon geschrieben.. ca so aufgebaut

Webseiten beschreibung
bla blub
blub
bla

und dann kommen die Aufträge

Auftragsnummer - Status - KD Name - Anschrift usw.
12313 offen Günther Anschrift
34424 bearbeitet Klaus Anschrifts
usw.



so jetzt habe ich im Netz folgenden Code gefunden und etwas angepaßt auf meine wünsche..


Code:
Delphi-Quellcode:
procedure TForm1.Button13Click(Sender: TObject);

var aNode,aNode2 : Olevariant;
   r,c,z,z2 : Integer;
begin
  //item(6) = 7te Tabelle in der Webseite
// aNode := WebBrowser1.OleObject.Document.all.tags('table').Item(7);
  aNode := WebBrowser1.OleObject.Document.all.tags(Edit8.text).Item(StrToInt(edit9.text));
// r := aNode.all.tags('tr').Length;//Zeilen feststellen
  r := aNode.all.tags(Edit10.text).Length;//Zeilen feststellen
  StringGrid1.RowCount := r;
  for z := 0 to r-1 do
    begin
// aNode2 := aNode.all.tags('tr').Item(z);
    aNode2 := aNode.all.tags(Edit11.text).Item(z);
// c := aNode2.all.tags('th').Length;
    c := aNode2.all.tags(Edit12.text).Length;
    if c > 0 then
      begin
      if c > StringGrid1.ColCount then
        StringGrid1.ColCount := c;
      for z2 := 0 to c-1 do
// StringGrid1.Cells[z2,z] := aNode2.all.tags('th').Item(z2).innerText;
         StringGrid1.Cells[z2,z] := aNode2.all.tags(Edit13.text).Item(z2).innerText;
      end;
// c := aNode2.all.tags('td').Length;
    c := aNode2.all.tags(Edit14.text).Length;
    if c > 0 then
      begin
      if c > StringGrid1.ColCount then
        StringGrid1.ColCount := c;
      for z2 := 0 to c-1 do
// StringGrid1.Cells[z2,z] := aNode2.all.tags('td').Item(z2).innerText;
        StringGrid1.Cells[z2,z] := aNode2.all.tags(Edit15.text).Item(z2).innerText;
      end;
    end;

end;
In den Edit Feldern stehen die Werte um auf die Tabelle zu kommen, die Tabelle der HTML Seite.. Bei meiner mußte ich nur die Tabellen Nummer von 6 auf 5 stellen der Rest also die "TD" und "TH" Kennzeichnungen sind geblieben..

Nun das funktioniert schonmal super.. Popov deine Idee ist auch super aber ich stoße damit an ein weiteres Problem was ich nicht bedacht hatte... unswar. Jetzt habe ich die Werte ausgelesen im Memo.textfeld und die stehen wie folgt dort

Auftragsnummer-Status-KD Name-Anschriftusw.
12313offenGüntherAnschrift
3442bearbeitetKlausAnschrifts


statt mit leerzeichen so

Auftragsnummer - Status - KD Name - Anschrift usw.
12313 offen Günther Anschrift
34424 bearbeitet Klaus Anschrifts
usw.

..

Und dieses würde bei der weiterverarbeitung dann für mich zu neuen Problemen führen..

Aber ich bin echt Dankbar für deine Tipps hast mir bereits bei einem anderem Problem super super gut weitergeholfen..

Nun jetzt habe ich aber auch wieder ein weiteres Problem.. Wie kann ich mit dem oben stehenden Code für das Parsen in ein Stringgrid erreichen, das er mir zeilen unten dran hängt. Weil wenn ich jetzt die 50 Seiten schritte durch gehe und immer Button13 drücke parster er mir nur den aktuellen wert, logisch und hängt die daten nicht hinter die vorhandenen Werte..

ähnlich wie beim Memofeld schreibe ich

memo2.Text:=WebBrowser1.OleObject.document.body.ou tertext;
dann schreibt er es ins memo, wiederhole ich es überschreibt er mir das memo2 feld

Mit folgendem hängt er einfach hinten dran die folgenden Werte.
Memo2.Lines.Append(WebBrowser1.OleObject.document. body.innerText);


Das würde ich gerne jetzt im Stringgrid mit meinem Code aus Button13 auch erreichen.. Hat jemand eine idee ?

Und mein zweites Problem wie bekomme ich die Werte vom StringGrid nach Excel ?

Ohh jee ich hoffe habe alles verständlich erklären können.. Manchmal ist das wirklich blöd eigentlich einfache Dinge zu erklären.. Hoffe es ist aber halbwegs gut verständlich.

Gruß
  Mit Zitat antworten Zitat