Hallo, ich hoffe, Ihr könnt mir weiterhelfen und seid auch gewillt, das zu tun ...
Ich stehe oft vor der leidlichen Problematik, Nootepad++ als Spalteneditor für Textdateien zu verwenden.
Dabei ähneln sich viele der Vorlagen, was die Positionierung der einzelnen Werte in der Datei angeht.
Ich selbst würde mich als sehr unerfahren mit der Programmierung bezeichnen, lediglich ein mit viel Unterstützung entstandenes
kleines Programm zur Änderung von Netzlaufwerten in einem GUI, AutoIt Tut´s (Einfachste Grundlagen, GUI, "Taschenrechner", beschränktes Dateihandling)
+ die Videos auf Youtoube und Tagelanges studieren und verstehen wollen von anderen Skrippten stehen auf der Haben Seite.
Leider komme ich mit meinem bescheidenen Wissen nicht so richtig vom Fleck und hoffe, ihr könnt mich unterstützen.
Hoffentlich poste ich das hier so richtig, wenn nicht, gebt mir bitte entsprechende Hinweise.
Hier meine Problematik:
Umeditieren von Txt-Dateien, von test.alt in eine neu erstellte test.neu.
Ausgangssituation: Alle Einträge in den Ausgangstextdateien können verschieden sein, lediglich die Position (Zeile und Spalte) liegt fest
Altes Format (test.alt):
0 1 2 3 4
1234567890123456789012345678901234567890 (Spalten):
-abcd123 xab666 cd777 4 "Fußball Bernd"
-abef456 xab888 ef999 8 "Tennis Silke"
Neues Format (test.neu):
0 1 2 3 4
1234567890123456789012345678901234567890 (Spalten):
+ bd123 ab666 cd777 4 "Fußball Bernd"
+ bf456 ab888 ef999 8 "Tennis Silke"
"Vermutlicher"/geplanter Programmdurchlauf
Kleines GUI zur Steuerung
-Auswahl der test.alt
-Erstellung einer leeren test.neu im selben Verzeichniss wie die test.alt
-Positionsweises einlesen der Werte von alt nach neu
-schreibe in die neu Zeile 1 Spalte 1 ein +
...
-schreibe in die neu Zeile 1 Spalte 4 den Wert von alt Zeile 1 Spalte 17
...
-speichern der test.neu + Info zur Umsetzung
Die Zahlen und der Bereich in " " in meinem Beispiel blieben identisch, nur halt an anderer Stelle.
Meine Gedanken bisher dazu:
#NoTrayIcon
#include <GUIConstantsEx.au3>
GUICreate("Daten umwandeln", 370, 200)
$alte = GUICtrlCreateButton("alt ein", 10, 150, 100, 35) ; alt einlesen
$altzuneu = GUICtrlCreateButton("alt zu neu", 130, 150, 100, 35) ; alt zu neu ändern
$ende = GUICtrlCreateButton("Ende", 250, 150, 100, 35)
GUICtrlCreateLabel (" + Dieses Programm ändert meine Textdateien + ", 10, 10)
GUICtrlCreateLabel ("Beschreibung" , 10, 35)
GUICtrlCreateLabel ("Beschreibung" , 10, 50)
GUICtrlCreateLabel ("""alt ein"" wählt Quelldatei im alt Format", 10, 80)
GUICtrlCreateLabel ("""alt zu neu"" schreibt um zu neu", 10, 100)
GUICtrlCreateLabel ("""Ende"" Mist, hab ich vergessen :)", 10, 120)
GUISetState() ;~ aktiviert das GUI (macht es sichtbar)
Do ;~ Anfang einer Schleife, Bedingung folgt weiter unten
$msg = GUIGetMsg() ;~ merkt sich den gedrückten Knopf
Select
Case $msg = $alte ;~ Ereignis 21, der Knopf "alt-ein" wird gedrückt
Local $message = "Quelldatei wählen (alt-Format)."
Local $avar = FileRead($message, "S:\", "2013 (*.alt;*.123)", 1 + 4)
If @error Then
MsgBox(4096, "", "Keine Datei(en) ausgewählt")
Else
$avar = StringReplace($avar, "|", @CRLF)
MsgBox(4096, "", "Es wurde die Datei " & $avar & " eingelesen")
EndIf
...Großbaustelle... ;(
EndSelect ;~ Beende das Auswahlverfahren
Until $msg = -3 or $msg = $ende
Exit
Alles anzeigen
Meine Baustellen:
Ich hab es so versucht, das $avar den Pfad zur test.alt enthält. Wie kriege mittels der Variable im selben verzeichniss die leere test.neu erstellt ?
Um die Werte einzeln zu überführen, müsste mann vermutlich für jeden Wert eine eigene Befehlszeile machen, oder wie kann ich auch Blöcke übernehmen ?
Wie ich die einzelnen Positionen auslesen kann, hab ich noch keinen Schimmer ...
Wenn ich da einmel weiß, wie es für 1 Feld (und ev. einen Block) geht, bekomme ich hoffentlich den Rest alleine hin.
Nach langer Suche bin ich auch auf eine mögliche Exel-Anbindung gestoßen, bei derartigen Vorhaben. Mir wäre Exelfrei jedoch mehr als deutlich lieber ...
Ist es überhaupt sinnvoll, wie gedacht zu arbeiten oder gibts einen besseren Weg ?
Danke erstmal an alle, die sich überhaupt bis hier hin durchgekämpft haben ...
Und jetzt : Hilfe