Hallo zusammen,
ich komme leider gerade nicht weiter und finde leider auch woanders keine Lösung.
Hintergrund: ich habe eine CSV-Datei mit verschiedenen Aufträgen.
Problem ist, dass ein Auftrag mehrere Positionen haben kann, aber jede Postion in einer Zeile steht.
Ich will die Ausgangsdatei aber in etwas schlankeres umwandeln, also quasi pro Auftrag nur eine Zeile und relevante Werte von den Positionen hintendran.
Das könnte ich anhand einer Auftragsnummer ausmachen, die in jeder Zeile steht.
Sowit bin ich zur Zeit:
[autoit]Local $position
Local $counter = 0
if GUICtrlRead($Checkbox1) = $GUI_CHECKED then
$file = FileOpenDialog("Bitte wählen Sie eine Datei aus.", @ScriptDir , "CSV-Datei (*.csv)", 1 )
Else
$file = @ScriptDir & "\test.csv"
EndIf
Dim $array
if Not _FileReadToArray($file, $array) Then
MsgBox(16,"Error", "Datei konnte nicht gelesen werden!")
Return $array
EndIf
; Ausgangsdatei hat einen Kopf
For $zeile = 2 To $array[0]
$wert = StringSplit($array[$zeile], ";")
$position &= ($wert[1] & ";" & $wert[2] & ";" & $wert[7] & ";" & $wert[8] & ";" & $wert[9] & ";" & $wert[10] & ";" & $wert[14] & ";" & $wert[24] & ";" & $wert[25] & ";" & $wert[29] & ";" & $wert[39] & ";" & $wert[61] & ";" & $wert[66] & ";" & $wert[67] & ";" & $wert[68] & ";" & $wert[72] &@CRLF)
$counter += 1
Next
[/autoit][autoit][/autoit][autoit]FileWrite(@ScriptDir & '\ausgabe.csv', $position)
MsgBox(0,"Info", "Die Datei hat "&$counter&" Position(en).")
Aber wie kann ich nun die Auftragsnummer (um genau zu sein Spalte 25) in den Zeilen vergleichen und dann gewisse Werte (61, 66, 67 und 68 ) aus den mehrfach vorkommenden Zeilen an die 1. Zeile des Auftrags in der neuen Datei "hintendran" setzen?
Geht das überhaupt alles auf einmal oder muss ich eine Temp-Datei erzeugen und dort weitermachen?
Sorry, aber ich steh gerade echt auf dem Schlauch.