Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Nicht-Normalisierte Abfrage nach XML exportieren

  Alt 25. Mär 2009, 01:13
Vielleicht so...
Delphi-Quellcode:
procedure CSVtoXML(Dateiname:string);
type TSpalte = (sKunde, sPNr, sMenge, sPreis);
var Quelle, Ziel:Textfile;
    Zeile, oldKunde:string;
    Values:array[TSpalte] of string;
    Spalte:TSpalte;
    Posi:integer;
begin
  assignfile(Quelle, Dateiname);
  assignfile(Ziel, ChangeFileExt(Dateiname, '.xml'));
  try
    reset(Quelle);
    rewrite(Ziel);
    oldKunde:='';
    while not Eof(Quelle) do begin
      readln(Quelle, Zeile);
      for Spalte:=low(TSpalte) to high(TSpalte) do begin
        Posi:=pos(';', Zeile);
        if Posi = 0 then
          Posi:=length(Zeile)+1;
        Values[Spalte]:=copy(Zeile, 1, Posi-1);
        delete(Zeile, 1, Posi);
      end;
      if oldKunde <> Values[sKunde] then begin
        if oldKunde <> 'then
          writeln(Ziel, '</Bestellung>');
        oldKunde:=Values[sKunde];
        writeln(Ziel, '<Bestellung>');
        writeln(Ziel, ' <Kunde>' + Values[sKunde] + '</Kunde>');
      end;
      writeln(Ziel, ' <Bestellposition>');
      writeln(Ziel, ' <Positionsnummer>' + Values[sPNr] + '</Positionsnummer>');
      writeln(Ziel, ' <Menge>' + Values[sMenge] + '</Menge>');
      writeln(Ziel, ' <Preis>' + Values[sPreis] + '</Preis>');
      writeln(Ziel, ' </Bestellposition>');
    end;
    if oldKunde <> 'then
      writeln(Ziel, '</Bestellung>');
  finally
    closefile(Quelle);
    closefile(Ziel);
  end;
end;
  Mit Zitat antworten Zitat