Und ich tu auch noch eine
Hier die Routine die ich nun zusammen gestellt habe.
Falls jemand das gleiche bzw ein ähnliches Problem hat kann er sich daran orientieren
Delphi-Quellcode:
procedure TForm2.xml_batch(FileName: string);
var
tblName: string;
FSW: string;
B: Integer;
I: Integer;
PSW: string;
A: Integer;
begin
JvSimpleXML1.LoadFromFile(FileName);
for I := 0 to JvSimpleXML1.Root.Items.Item[0].Items.Count - 1 do
begin
tblName := '';
PSW := '';
FSW := '';
tblName := StringReplace(JvSimpleXML1.Root.Items.Item[0].Items.Item[I].Name, '-', '_', [rfReplaceAll]);
DISQLite3db.Execute16('CREATE TABLE [' + tblName + '] ([ID] INTEGER NOT NULL PRIMARY KEY,[FSW] TEXT NOT NULL,[PSW] TEXT NULL,[COMMENT] TEXT NULL)');
for A := 0 to JvSimpleXML1.Root.Items.Item[0].Items.Item[I].Items.Count - 1 do
begin
FSW := JvSimpleXML1.Root.Items.Item[0].Items.Item[I].Items.Item[A].Properties.Value('value');
for B := 0 to JvSimpleXML1.Root.Items.Item[0].Items.Item[I].Items.Item[A].Items.Count - 1 do
begin
PSW := PSW + JvSimpleXML1.Root.Items.Item[0].Items.Item[I].Items.Item[A].Items.Item[B].Properties.Value('value') + #10;
end;
DISQLite3db.Execute16('INSERT INTO ' + tblName + ' VALUES (NULL,"' + FSW + '","' + PSW + '", "")');
end;
end;
end;
Noch eine kurze anmerkung:
Ich habe wie schon erwähnt SQLite3 im einsatz.
Code:
[ID] INTEGER NOT NULL PRIMARY KEY
Bewirkt bei SQLite3 ein Integerfeld mit Autoincrement