var
lXMLOutput:
string;
lFileVersionInfo, lFileNameInfo, lProductVersionInfo:
string;
SemikolonPos: integer;
StringPos: integer;
iZaehler: integer;
GefundeneDateien:
string;
Ordnerpfad:
string;
i: integer;
begin
fVersionInfo :=
nil;
with TFileOpenDialog.Create(
nil)
do
try
Options := [fDoPickFolders];
if Execute
then
Ordnerpfad := Filename;
finally
Free;
end;
// Rekursive Dateisuche
GetFilesInDirectory(Ordnerpfad, '
*.dproj', ListBox1.Items, True);
GefundeneDateien := ListBox1.Items.Text;
// CheckListBox??????
// Dateien in CheckListBox schreiben
CheckListBox1.Items.Text := GefundeneDateien;
CheckListBox1.SelectAll;
// CheckListBox ausgewählte Dateien
for i := 0
to CheckListBox1.Items.Count - 1
do
CheckListBox1.Checked[i];
for iZaehler := 0
to i - 1
do
begin
// XML-Dokument laden
CurrentXML := NewXMLDocument;
CurrentXML.LoadFromFile(GefundeneDateien);
// Dateinamen einfügen
CurrentXML.Active := True;
// XML-Dokument auslesen
GetVersionInfo(CurrentXML.DocumentElement);
if fVersionInfo.NodeValue <> '
'
then
begin
// Kompletter VerInfo_Keys Part
lXMLOutput := fVersionInfo.NodeValue;
// FileVersion Stringposition, Nummer kopieren und zuweisen
StringPos := POS('
FileVersion=', lXMLOutput);
SemikolonPos := lXMLOutput.IndexOf('
;', StringPos);
lFileVersionInfo := lXMLOutput.Substring(StringPos + 11,
SemikolonPos - StringPos - 11);
// InternalName Stringposition, Substring kopieren und zuweisen
StringPos := POS('
InternalName=', lXMLOutput);
SemikolonPos := lXMLOutput.IndexOf('
;', StringPos);
lFileNameInfo := lXMLOutput.Substring(StringPos + 12,
SemikolonPos - StringPos - 12);
// ProductVersion Stringposition, Substring kopieren und zuweisen
StringPos := POS('
ProductVersion=', lXMLOutput);
SemikolonPos := lXMLOutput.IndexOf('
;', StringPos);
lProductVersionInfo := lXMLOutput.Substring(StringPos + 14,
SemikolonPos - StringPos - 14);
// Überschriften StringGrid
StringGrid1.Cells[0, 0] := '
Projekt';
StringGrid1.Cells[1, 0] := '
DateiVersion';
StringGrid1.Cells[2, 0] := '
ProduktVersion';
// Vierte Spalte unsichtbar
StringGrid1.ColWidths[3] := -1;
// Eintragungen StringGrid
StringGrid1.Cells[0, iZaehler] := lFileNameInfo;
StringGrid1.Cells[1, iZaehler] := lFileVersionInfo;
StringGrid1.Cells[2, iZaehler] := lProductVersionInfo;