Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Import CSV-Datei für ebay Turbo Lister 2 (https://www.delphipraxis.net/122812-import-csv-datei-fuer-ebay-turbo-lister-2-a.html)

handson 22. Okt 2008 13:20


Import CSV-Datei für ebay Turbo Lister 2
 
Hallo!

Ich möchte gerne eine CSV-Datei für den ebay Turbo Lister 2 erstellen. Soweit so gut, allerdings gibt es in der Datei 4 Felder, die im XML-Format Base64 codiert sind. Auch gut. Ebay verändert aber mit Base64 Codierung, vermutlich mit Checksummen, 16 Bit und CR/LF-Zeichen.
Ich habe es leider nicht hinbekommen, die benötigten XML-Daten, so zu codieren, dass der Turbo Lister 2 es lesen kann.

Hat jemand schon Erfahrung damit gemacht, und mir den Algorhytmus geben kann?

Vielen Dank!

Stephan

Neutral General 29. Mär 2012 16:31

AW: Import CSV-Datei für ebay Turbo Lister 2
 
Hallo,

Ich antworte darauf jetzt mal trotz des hohen Alters des Threads weil ich an diesem Problem tagelang verzweifelt bin und das für die Nachwelt sicher ganz nützlich sein könnte:

Auf diese Weise füllt man diese Felder:

1) XML-Daten erstellen
2) Prüfsumme mit folgendem Algorithmus berechnen:
Delphi-Quellcode:
function CalcEbayXMLChecksum(AXMLDaten: String): Char;
var AnsiXML: AnsiString;
    CheckSum: Byte;
    i: Integer;
begin
  AnsiXML := AnsiString(AXMLDaten);

  CheckSum := 0;
  for i := 1 to Length(AnsiXML) do
    CheckSum := CheckSum xor Ord(AnsiXML[i]);

  Result := Chr(checkSum);
end;
3) Prüfsumme an die XML-Daten dranhängen

Delphi-Quellcode:
XMLDaten := XMLDaten + CalcEbayXMLChecksum(XMLDaten);


4) XML-Daten Base64 codieren
Delphi-Quellcode:
uses EncdDecd; // Bzw. Soap.EncdDecd

Base64XML := String(EncodeBase64(@XMLDaten[1],SizeOf(Char)*Length(XMLDaten)));
5) Zeilenumbrüche (sLinebreak) im Base64-String durch '%0d%0a' ersetzen

Delphi-Quellcode:
Base64XML := StringReplace(Base64XML,sLinebreak,'%0d%0a',[rfReplaceAll]);


6) Fertig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:55 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