Einzelnen Beitrag anzeigen

Freyr77
(Gast)

n/a Beiträge
 
#1

CheckListBox Items separieren

  Alt 2. Aug 2016, 15:50
Delphi-Version: 10 Seattle
Die hoffentlich letzte Frage zu meinem Projekt..

Ich lasse einen Ordner über TFileOpenDialog auswählen, anschließend suche ich mit "GetFilesInDirectory" nach allen .dproj's in dem gewählten Ordner und speichere Sie in meiner CheckListBox ab. Alles kein Thema, die gewünschten Dateien wurden alle korrekt eingelesen und zugeordnet.

Jetzt durchläuft meine Schleife aber eine bestimmte Prozedur für jedes einzelne .dproj und speichert dieses abschließend in einem StringGrid mit ausgelesenen Datei Informationen. Deshalb bräuchte ich jedes Item der CheckListBox einzeln als String. Sonst kann das Programm das nicht verarbeiten.

Das ganze sieht so aus:

Delphi-Quellcode:
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;
Ich hatte schon die Idee das ganze einzeln zu Zerpflücken und dann in Variablen zu speichern. Das ist mir aber zu umständlich, weil es viele Dateien sind.
  Mit Zitat antworten Zitat