Hallo,
ich bin neu und beschäftige mich erst seit kurzer Zeit mit AutoIt und bin total begeistert davon. Bisher hat mir ein Bekannter kräftig geholfen, aber hier kommt auch er nicht weiter.
Ich möchte mit AutoIt eine Textdatei zufällig in einen Array auslesen und danach Zeile für Zeile in ein Eingabefeld eingeben lassen.
Ich habe also z.B. eine Textdatei mit dem Inhalt:
Das zufällige Auslesen habe ich hierdurch teilweise gelöst:
[autoit]Global $text
_FileReadToArray(@ScriptDir & "\test.txt", $text)
$random = Random(1,$text[0],1)
Teilweise, weil die Zeilen nicht nach und nach zufällig eingegeben werden, sondern endlos zufällig.
Ich hoffe ich habe mich so einigermaßen verständlich ausgedrückt
Sollte das nicht möglich sein, hatte mein Bekannter als Alternative die Idee (die eigentlich sogar besser ist), die Zeilen einfach zufällig vertauschen zu lassen und dann in eine neue Textdatei abzuspeichern. Das klappt auch fast mit diesem Code:
[autoit]#include <File.au3>
[/autoit][autoit][/autoit][autoit]Global $text
[/autoit][autoit][/autoit][autoit][/autoit][autoit]_FileReadToArray(@ScriptDir & "\test.txt", $text)
[/autoit][autoit][/autoit][autoit]Global $text2[100]
[/autoit][autoit][/autoit][autoit]For $i = 1 To $text[0]
$random = Random(1, $text[0], 1)
$a=0
For $j=1 To $i+1
If $text[$random] = $text2[$j] Then
$a=$a+1
Else
;$i = $i - 1
EndIf
Next
If $a=0 Then
$text2[$i] = $text[$random]
Else
$i = $i - 1
EndIf
Next
[/autoit][autoit][/autoit][autoit]_FileWriteFromArray(@ScriptDir & "\neu.txt", $text2, 1)
[/autoit]Das Problem besteht darin, dass die Anzahl der Zeilen festgelegt werden muss und mindestens eine leere Zeile hinzugefügt wird. Kann man das auch dynamisch lösen, so dass man nicht jedesmal die Zeilenanzahl fest bestimt ODER kann man einfach die leere Zeile löschen lassen bevor das Array in neu.txt gespeichert wird?
Wenn ihr mir da irgendwie helfen könntet, wäre ich euch wirklich sehr dankbar
Liebe Grüße