Hallo zusammen,
ich bin noch ein relativer Neuling in AutoIt, und habe scheinbar einen Konflikt mit der Funktion _GUICtrlListView_GetItemText .
Ich lese einen angegebenen Ordner aus, packe diese Dateien in eine Listview. Diese Listview hat 4 Spalten, Name, A, B, und C. Die Spalte Name ist 'ausgeblendet' und die Spalten A, B und C werden mit Daten die aus der jeweiligen Datei die eigentlich dahinter steckt gefüllt. Soweit alles gut...
Nun soll in der Spalte A ein Datum, und in der Spalte B eine Uhrzeit im Format JJ/MM/TT und Stunde/Minute angegeben werden.
Mein Problem: Die ersten zeichen des Datums und der Uhrzeit werden verworfen solange sie Nullen sind. Und dass darf nicht passieren...
Hier ein Screenshot, wie es aussieht wenn ich als erste Zeichen Nullen angebe:
[Blockierte Grafik: http://s1.directupload.net/images/120920/9v8q5yi6.png]
Hier sieht man auch, in der ersten Spalte würde statt: 00000006 nur 6 angezeigt werden. Dort wäre es nicht weiter tragisch, nur das Datum (Spalte 2) und die Zeit (Spalte 3) müssen die möglichkeit bieten Nullen anzugeben.
Hier mal ein Stück Code:
[autoit]Func listview_links()
Local $i, $z, $readline, $spaltea
_GUICtrlListView_DeleteAllItems($listviewlinks)
Local $files = _FileListToArray($pathfolder1, "*.txt", 1)
If ($files <> 0) Then
For $i = 1 To $files[0]
$readline = FileReadLine($pathfolder1 & "\" & $files[$i], 2)
$spaltea = StringMid($readline, 6,
$udatum = StringMid($readline, 31, 6)
$uzeit = StringMid($readline, 37, 4)
Local $spalteasdad = IsString($uzeit)
_GUICtrlListView_AddItem($listviewlinks, $spaltea) ;~ Spalte 1
_GUICtrlListView_AddSubItem($listviewlinks, $z, $files[$i], 1) ;~ eigentlich Spalte 2 aber Dateiname 'hidden'
_GUICtrlListView_AddSubItem($listviewlinks, $z, $udatum, 2);~ Angezeigte 2. Spalte: Größe
_GUICtrlListView_AddSubItem($listviewlinks, $z, $uzeit, 3) ;~ Angezeigte 3. Spalte: Datum/Uhrzeit
$z += 1
Next
_GUICtrlListView_SetColumnWidth($listviewlinks, 0, $LVSCW_AUTOSIZE_USEHEADER)
_GUICtrlListView_HideColumn($listviewlinks, 1) ; verstecke Spalte Dateiname
Local $B_ASCENDING[_GUICtrlListView_GetColumnCount($listviewlinks)]
Local $sortierung = True
_GUICtrlListView_SimpleSort($listviewlinks, $sortierung, 3)
For $i = 0 To $z
;
;;
;;; Ich denke hier muss der Fehler sein...
Local $jahr = StringMid(_GUICtrlListView_GetItemText($listviewlinks, $i, 2), 1, 2)
Local $monat = StringMid(_GUICtrlListView_GetItemText($listviewlinks, $i, 2), 3, 2)
Local $tag = StringMid(_GUICtrlListView_GetItemText($listviewlinks, $i, 2), 5, 2)
Local $stunde = StringMid(_GUICtrlListView_GetItemText($listviewlinks, $i, 3), 1, 2)
Local $minute = StringMid(_GUICtrlListView_GetItemText($listviewlinks, $i, 3), 3, 2)
;;; ...
;;
;
_GUICtrlListView_SetItemText($listviewlinks, $i, $jahr & "." & $monat & "." & $tag, 2)
_GUICtrlListView_SetItemText($listviewlinks, $i, $stunde & ":" & $minute, 3)
Next
EndIf
EndFunc ;==>listview_links
Ich habe einige Testfenster (MsgBox) eingefügt, um zu gucken bis wo
dieser Wert/diese Variable quasi ein Integer und wo ein String ist. Ich
denke dies ist mein Problem...wäre es immer ein String, so sollte er die 0 als normales Zeichen beibehalten und dann würde auch Datum sowie Uhrzeit ordentlich angezeigt werden.
Ich habe viel gegoogelt, leider erfolglos.
Daher nochmal meine Vermutung in Kurzform: Die Funktion _GUICtrlListView_GetItemText nimmt die Variable als Integer statt String...
Ich hoffe ihr könnt mir helfen
Grüße
YaeroxXO