Datei lesen und neu anordnen

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Mato
Posts: 1
Joined: 17 Jan 2020, 05:36

Datei lesen und neu anordnen

17 Jan 2020, 05:51

Hallo liebes Forum-Team,

ich habe eine kleine Frage. Würde gerne mit AHK eine Textdatei einlesen. Ziel ist immer die Zeile mit der Kennung 1; überall vor die einzelnen Referenznummer 2; zu setzten bis wieder ein neuer Datensatz mit 1 kommt.
ist sowas mit AHK möglich? Hoffe Ihr habt ein paar Ideen für mich. Danke schon mal im voraus.

Code: Select all

1;ST;PP;CP;83089195;17720;Müller Maier D;Hauptstr. 1;Berlin;TI;DE;12333;ABC Firma CO;HEIRBAAN 16;TERNAT;BE;BE;1740;990098;020120;FH;EUR;0;0;34,8400;5002;17720;0;0;0;0;0;0;5;0;0;E;;;;;
2;76133730000827667;
2;76133730000827674;
2;76133730000827698;
2;76133730000827681;
2;76133730002694038;
1;ST;PP;CP;83089210;17720;Hans Thomas D;Hauptstr. 1;Berlin;TI;DE;12333;BEAU BEERENS B.V;41 MOLENBODETSTRAAT;TILBURG;NL;NL;5014EM;990094;020120;FH;EUR;0;0;12,3400;7010;17720;0;0;0;0;0;0;6;0;0;E;;;;;
2;76133730001991992;
2;76133730002203018;
2;76133730000836218;
2;76133730001992005;
2;76133730001989654;
2;76133730001991923;
1;ST;PP;CP;83089258;17720; Rudolf;Hauptstr. 1;Berlin;TI;DE;12333;HAUS-FRAU I/S;NYGADE 9-11;ABC Firma;DK;DK;8600;991394;030120;FH;EUR;0;0;3,4600;7503;17720;0;0;0;0;0;0;2;0;0;E;;;;;
2;76133730001988282;
2;76133730002203254;
1;ST;PP;CP;83089324;17720;Bester AHK Skripter;Hauptstr. 1;Berlin;TI;DE;12333;MODFE AG;WEISSGERBERWEG 2-6;HALLEIN;AT;AT;5400;991360;030120;FH;EUR;0;0;1,0800;6003;17720;0;0;0;0;0;0;1;0;0;E;;;;;
2;76133730002202004;
So sollte es dann aussehen

Code: Select all

1;ST;PP;CP;83089195;17720;[b]Müller Maier[/b] D;Hauptstr. 1;Berlin;TI;DE;12333;ABC Firma CO;HEIRBAAN 16;TERNAT;BE;BE;1740;990098;020120;FH;EUR;0;0;34,8400;5002;17720;0;0;0;0;0;0;5;0;0;E;;;;;
2;76133730000827667;1;ST;PP;CP;83089195;17720;[b]Müller Maier[/b] D;Hauptstr. 1;Berlin;TI;DE;12333;ABC Firma CO;HEIRBAAN 16;TERNAT;BE;BE;1740;990098;020120;FH;EUR;0;0;34,8400;5002;17720;0;0;0;0;0;0;5;0;0;E;;;;;
2;76133730000827674;1;ST;PP;CP;83089195;17720;[b]Müller Maier[/b] D;Hauptstr. 1;Berlin;TI;DE;12333;ABC Firma CO;HEIRBAAN 16;TERNAT;BE;BE;1740;990098;020120;FH;EUR;0;0;34,8400;5002;17720;0;0;0;0;0;0;5;0;0;E;;;;;
2;76133730000827698;1;ST;PP;CP;83089195;17720;[b]Müller Maier[/b] D;Hauptstr. 1;Berlin;TI;DE;12333;ABC Firma CO;HEIRBAAN 16;TERNAT;BE;BE;1740;990098;020120;FH;EUR;0;0;34,8400;5002;17720;0;0;0;0;0;0;5;0;0;E;;;;;
2;76133730000827681;1;ST;PP;CP;83089195;17720;[b]Müller Maier[/b] D;Hauptstr. 1;Berlin;TI;DE;12333;ABC Firma CO;HEIRBAAN 16;TERNAT;BE;BE;1740;990098;020120;FH;EUR;0;0;34,8400;5002;17720;0;0;0;0;0;0;5;0;0;E;;;;;
2;76133730002694038;1;ST;PP;CP;83089195;17720;[b]Müller Maier[/b] D;Hauptstr. 1;Berlin;TI;DE;12333;ABC Firma CO;HEIRBAAN 16;TERNAT;BE;BE;1740;990098;020120;FH;EUR;0;0;34,8400;5002;17720;0;0;0;0;0;0;5;0;0;E;;;;;
1;ST;PP;CP;83089210;17720;[b]Hans Thomas[/b] D;Hauptstr. 1;Berlin;TI;DE;12333;BEAU BEERENS B.V;41 MOLENBODETSTRAAT;TILBURG;NL;NL;5014EM;990094;020120;FH;EUR;0;0;12,3400;7010;17720;0;0;0;0;0;0;6;0;0;E;;;;;
2;76133730001991992;1;ST;PP;CP;83089210;17720;[b]Hans Thomas[/b] D;Hauptstr. 1;Berlin;TI;DE;12333;BEAU BEERENS B.V;41 MOLENBODETSTRAAT;TILBURG;NL;NL;5014EM;990094;020120;FH;EUR;0;0;12,3400;7010;17720;0;0;0;0;0;0;6;0;0;E;;;;;
2;76133730002203018;1;ST;PP;CP;83089210;17720;[b]Hans Thomas[/b] D;Hauptstr. 1;Berlin;TI;DE;12333;BEAU BEERENS B.V;41 MOLENBODETSTRAAT;TILBURG;NL;NL;5014EM;990094;020120;FH;EUR;0;0;12,3400;7010;17720;0;0;0;0;0;0;6;0;0;E;;;;;
2;76133730000836218;1;ST;PP;CP;83089210;17720;[b]Hans Thomas[/b] D;Hauptstr. 1;Berlin;TI;DE;12333;BEAU BEERENS B.V;41 MOLENBODETSTRAAT;TILBURG;NL;NL;5014EM;990094;020120;FH;EUR;0;0;12,3400;7010;17720;0;0;0;0;0;0;6;0;0;E;;;;;
2;76133730001992005;1;ST;PP;CP;83089210;17720;[b]Hans Thomas[/b] D;Hauptstr. 1;Berlin;TI;DE;12333;BEAU BEERENS B.V;41 MOLENBODETSTRAAT;TILBURG;NL;NL;5014EM;990094;020120;FH;EUR;0;0;12,3400;7010;17720;0;0;0;0;0;0;6;0;0;E;;;;;
2;76133730001989654;1;ST;PP;CP;83089210;17720;[b]Hans Thomas[/b] D;Hauptstr. 1;Berlin;TI;DE;12333;BEAU BEERENS B.V;41 MOLENBODETSTRAAT;TILBURG;NL;NL;5014EM;990094;020120;FH;EUR;0;0;12,3400;7010;17720;0;0;0;0;0;0;6;0;0;E;;;;;
2;76133730001991923;1;ST;PP;CP;83089210;17720;[b]Hans Thomas[/b] D;Hauptstr. 1;Berlin;TI;DE;12333;BEAU BEERENS B.V;41 MOLENBODETSTRAAT;TILBURG;NL;NL;5014EM;990094;020120;FH;EUR;0;0;12,3400;7010;17720;0;0;0;0;0;0;6;0;0;E;;;;;
1;ST;PP;CP;83089258;17720; [b]Rudolf[/b];Hauptstr. 1;Berlin;TI;DE;12333;HAUS-FRAU I/S;NYGADE 9-11;ABC Firma;DK;DK;8600;991394;030120;FH;EUR;0;0;3,4600;7503;17720;0;0;0;0;0;0;2;0;0;E;;;;;
2;76133730001988282;1;ST;PP;CP;83089258;17720; [b]Rudolf[/b];Hauptstr. 1;Berlin;TI;DE;12333;HAUS-FRAU I/S;NYGADE 9-11;ABC Firma;DK;DK;8600;991394;030120;FH;EUR;0;0;3,4600;7503;17720;0;0;0;0;0;0;2;0;0;E;;;;;
2;76133730002203254;1;ST;PP;CP;83089258;17720; [b]Rudolf[/b];Hauptstr. 1;Berlin;TI;DE;12333;HAUS-FRAU I/S;NYGADE 9-11;ABC Firma;DK;DK;8600;991394;030120;FH;EUR;0;0;3,4600;7503;17720;0;0;0;0;0;0;2;0;0;E;;;;;
1;ST;PP;CP;83089324;17720;[b]Bester AHK Skripter[/b];Hauptstr. 1;Berlin;TI;DE;12333;MODFE AG;WEISSGERBERWEG 2-6;HALLEIN;AT;AT;5400;991360;030120;FH;EUR;0;0;1,0800;6003;17720;0;0;0;0;0;0;1;0;0;E;;;;;
2;76133730002202004;1;ST;PP;CP;83089324;17720;[b]Bester AHK Skripter[/b];Hauptstr. 1;Berlin;TI;DE;12333;MODFE AG;WEISSGERBERWEG 2-6;HALLEIN;AT;AT;5400;991360;030120;FH;EUR;0;0;1,0800;6003;17720;0;0;0;0;0;0;1;0;0;E;;;;;
ElektroBerry
Posts: 7
Joined: 13 Jul 2019, 20:10

Re: Datei lesen und neu anordnen

17 Jan 2020, 15:51

Hallo,
hier einmal meine Lösung:

Code: Select all

#Include tf.ahk ; Bindet die Funktionssammlung für Textdateien ein
Zeilen := TF_CountLines("Datei.txt") ; Zählt die Zeilen
Loop % Zeilen {
	FileReadLine, Heuhaufen, Datei.txt, A_Index ; Liest eine Zeile in der Textdatei
	If (SubStr(Heuhaufen, 1, 1) = 1) { ; Ist das 1. Zeichen, die Ziffer 1?
		Zeilentext := Heuhaufen ; Dann speichere den Zeilentext
	} 
	If (SubStr(Heuhaufen, 1, 1) = 2) { ; Das 1. Zeichen ist eine 2?
		ErsatzText := Heuhaufen . Zeilentext ; Fügt der Zeile, den 1. Zeilentext  hinzu
		TF_ReplaceLine("!Datei.txt", A_Index, A_Index, ErsatzText) ; Ersetzt die Textzeile
	}
}
msgbox Textdatei wurde bearbeitet.
Ich verwende hier diese zusätzliche Funktionssammlung: https://github.com/hi5/TF

Edit: Mir ist ein Fehler aufgefallen. Ich hatte zu umständlich gedacht.
garry
Posts: 1981
Joined: 22 Dec 2013, 12:50

Re: Datei lesen und neu anordnen

17 Jan 2020, 16:43

hier ein basic Beispiel

Code: Select all

f1=%a_scriptdir%\test.txt
fileread,a,%f1%
loop,parse,a,`n,`r
{
x=%a_loopfield%
if x=
  continue
stringsplit,C,x,`;
if (c1="1")
  { 
  e1 := x
  e .= x . "`r`n"
  }
if (c1="2")
  e .= x . e1 . "`r`n"
}
msgbox,%e%
;fileappend,%e%,test55.txt
a=
return
  

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 10 guests