Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 12:45

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Autoit Daten aus Datei Lesen

Discussion on Autoit Daten aus Datei Lesen within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Sep 2007
Posts: 82
Received Thanks: 21
Autoit Daten aus Datei Lesen

Hallo,
ich hab mal eine Frage.
Ich habe eine Datei an die 300kb groß. Es sind alles einträge die mit einem ";" abgetrennt sind. Sie stehen alle in einer Line zusammen.

Quote:
$file = FileOpen("bla", 0)
$xy = StringSplit(FileReadLine($file), ";")
FileClose($file)
So komm ich aber nicht an alle Einträge herran, weil die Variable einfach zu groß wird.
Wenn Jemand einen Rat weiß wäre ich sehr dankbar.

Mfg Dung3on
Dung3on is offline  
Old 06/27/2009, 22:24   #2

 
°Remus°'s Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 8,541
Received Thanks: 4,539
mit UBound kannst du die größe/dimension des arrays rausfinden und dann einfach mit ner for schleife entsprechend abarbeiten
°Remus° is offline  
Old 06/27/2009, 22:33   #3
 
elite*gold: 0
Join Date: Sep 2007
Posts: 82
Received Thanks: 21
Das Problem ist aber, dass nicht alle einträge ( Also Arrays ) In die Variable gehen weils zu viele sind. Er nimmt nur ca. 6000 auf obwohl es über 15000 sein müssten.

Es müsste eine Möglichkeit geben die Daten i-wie in 1000er Päckchen auszulesen, ohne die Datei vorher komplett in eine Variable als String bzw. als Arrays, zu packen.
Sonst wüsst ich nicht wie...
Dung3on is offline  
Old 06/28/2009, 09:51   #4




 
invisible's Avatar
 
elite*gold: 0
Join Date: Jul 2005
Posts: 12,457
Received Thanks: 2,961
#moved zum autoit bereich
invisible is offline  
Old 06/28/2009, 10:49   #5

 
°Remus°'s Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 8,541
Received Thanks: 4,539
mhh für mich sieht das ziemlich nach nem programm aus was ne password liste abarbeitet um accounts zu klauen, ich hab schon nen paar ideen wie du es machen könntest aber sag bitte erstma was das werden soll oder poste am besten gleich den ganzen sourcecode
°Remus° is offline  
Old 06/28/2009, 17:10   #6
 
elite*gold: 0
Join Date: Sep 2007
Posts: 82
Received Thanks: 21
Also mit dem Sourcecode wirds was schwer, hat über 1000 Zeilen
Aber ich sag euch wofür ich das brauche. Suchfunktion


Quote:

$file = FileOpen("libraries/stadt.txt", 0)
$stadtkom = StringSplit(FileReadLine($file), ";")
FileClose($file)

$file1 = FileOpen("libraries/groesse.txt", 0)
$groessekom = StringSplit(FileReadLine($file1), ";")
FileClose($file1)

$file2 = FileOpen("libraries/spieler.txt", 0)
$spielerkom = StringSplit(FileReadLine($file2), ";")
FileClose($file2)

$file3 = FileOpen("libraries/punkte.txt", 0)
$punktekom = StringSplit(FileReadLine($file3), ";")
FileClose($file3)

$file4 = FileOpen("libraries/allianz.txt", 0)
$allianzkom = StringSplit(FileReadLine($file4), ";")
FileClose($file4)

$file5 = FileOpen("libraries/coord.txt", 0)
$coordkom = StringSplit(FileReadLine($file5), ";")
FileClose($file5)

$file6 = FileOpen("libraries/general.txt", 0)
$generalkom = StringSplit(FileReadLine($file6), ";")
FileClose($file6)

$count = Ubound($generalkom)


Dim $ListView5[$count + 1]

$Form1 = GUICreate("Form1", 754, 538, 194, 125)
$Label1 = GUICtrlCreateLabel("Suche", 24, 24, 51, 17)
$Feld = GUICtrlCreateCombo("", 24, 48, 97, 25)
GUICtrlSetData(-1, "Spieler|Stadt|Größe|Allianz|Punkte|Insel|General" )
$operatorcom = GUICtrlCreateCombo("", 128, 48, 98, 25)
GUICtrlSetData(-1, "gleich|größer|kleiner|nicht gleich|")
$wertinput = GUICtrlCreateInput("", 232, 48, 98, 21)
$newsearch = GUICtrlCreateButton("neue Suche", 352, 48, 90, 25, 0)
$search = GUICtrlCreateButton("weiter suchen", 440, 48, 90, 25, 0)
$progressbar2 = GUICtrlCreateProgress(24, 75, 200, 20)
$Label3 = GUICtrlCreateLabel("Ergebnisse", 64, 104, 56, 17)
$ListView1 = GUICtrlCreateListView("Spieler|Stadt|Größe|Allianz |Punkte|Insel|General", 24, 136, 705, 377)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 95)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 95)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 95)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 95)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 95)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 95)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 95)



$i = 1;
While $i < $count
$i = $i + 1
$total = $total + 1;
WEnd

$Label2 = GUICtrlCreateLabel($total, 24, 104, 36, 17)

;''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''
Dim $ListView5[$total + 2]


$count = UBound($generalkom)

$i = 2;
While $i < $count
$ListView5[$i] = GUICtrlCreateListViewItem($spielerkom[$i] & "|" & $stadtkom[$i] & "|" & $groessekom[$i] & "|" & $allianzkom[$i] & "|" & $punktekom[$i] & "|" & $coordkom[$i] & "|" & $generalkom[$i], $ListView1)
$i = $i + 1

WEnd

GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUISetState(@SW_SHOW)

So
Dung3on is offline  
Old 06/28/2009, 23:38   #7
 
marcopolo1990's Avatar
 
elite*gold: 20
Join Date: Jan 2008
Posts: 2,632
Received Thanks: 8,492
warum nicht bis line 1000 lesen next array wieder 1000 lines abarbeiten , next array
sonst attach mal die txt file ,dann fuchtel ich was rum
marcopolo1990 is offline  
Thanks
1 User
Old 06/29/2009, 00:05   #8
 
elite*gold: 0
Join Date: Sep 2007
Posts: 82
Received Thanks: 21
Ja das mit den Lines dachte ich auch zuerst, aber das Format des Contents sieht so aus ";blalbal;sdfsdf;sdfsdf;sdfsdf;sdfsdf;sdfs"

Wenn ich das in den Dreamweaver schmeisse und Search Replace mache dann braucht der 2 std. bei einer Datei und ich hab 6 ,die wöchentlich aktualisiert werden^^ (AMD2 6000+)
Dung3on is offline  
Old 06/29/2009, 00:11   #9
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
hm ich kann das problem irgendwie nicht nachvollziehen, ich arbeite teils mit sehr großen wordlisten bis 700 mb und habe keine probleme mit dem bearbeiten der files mit autoit.

am besten du hängst so ein file wirklich mal an.


edit: mir ist grad aufgefallen das du wegen deinem stringsplit eh jede zeile einzeln aufrufen musst, dann machs einfach so, dauert aber ewig, da jede zeile wie gesagt eingelesen werden muss. bei mir braucht er aufm lappi ca 10 sek für 1000 zeilen.

Code:
#Include <Array.au3>
#Include <file.au3>

$file = "1.txt"
$anzahl = _FileCountLines($file)
$line =1
for $i = 1 to $anzahl
	$xy=StringSplit(FileReadLine($file, $line), "6",2)
	$line +=1
	FileWriteline("ausgabe.txt",$xy[0])
	$rest = $anzahl - $i
	ToolTip($rest & " lines left")
Next
kknb is offline  
Old 06/29/2009, 01:27   #10
 
elite*gold: 0
Join Date: Aug 2006
Posts: 505
Received Thanks: 89
Sehe ich das richtig, dass du die Daten in riesigen Textdateien speicherst?

Schonmal was von Datenbanken gehört? MySQL z.B.? Das wäre um einiges schneller, und du hast viel mehr Möglichkeiten gezielt Daten herauszufiltern.
kennyo is offline  
Old 06/29/2009, 11:33   #11
 
elite*gold: 0
Join Date: Sep 2007
Posts: 82
Received Thanks: 21
Okay Kknb, das Problem ist jedoch immernoch, dass es Nur eine Line gibt.
Also der Komplette Inhalt ist in einer Zeile.

MySql ist interessant, habe ich noch nie gemacht bei Autoit ist das wie in php? Kann ich Offline Mysql Datenbanken erstellen, ohne ein Extra Programm wie xampp zu nutzen?
Dung3on is offline  
Old 06/29/2009, 12:50   #12

 
Adroxxx's Avatar
 
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
um eine mysql datenbank zu erstellen, brauchst du mysql... du brauchst nicht unbedingt xampp da dort auch webserver etc drin sind. einfach nur mysql würd reichen, aber dann musste auch server anmachen etc.
Adroxxx is offline  
Old 06/30/2009, 02:06   #13
 
marcopolo1990's Avatar
 
elite*gold: 20
Join Date: Jan 2008
Posts: 2,632
Received Thanks: 8,492
hmm, ich weis zwar nicht warum, aber bei mir splittet er die 1. zeile nach ner bestimmten anzahl von zeichen im notepad
die file ist dann 1 kb groß

häng hier wirklich mal deine file an, denn wenns in eine zeile passt, sollte das ein kinderspiel sein oO
marcopolo1990 is offline  
Old 06/30/2009, 23:30   #14
 
elite*gold: 0
Join Date: Sep 2007
Posts: 82
Received Thanks: 21
Okay ich habe das Problem ersteinmal gelöst, jedoch ist es recht langsam.
Ich habe in den txt Files jetzt das Format mit Umbrüchen. Also filereadline...

Quote:
$line = 1;
$counter1 = _FileCountLines("libraries/stadt.txt")

$Form1 = GUICreate("Form1", 754, 538, 194, 125)
$Label1 = GUICtrlCreateLabel("Suche", 24, 24, 51, 17)
$Feld = GUICtrlCreateCombo("", 24, 48, 97, 25)
GUICtrlSetData(-1, "Spieler|Stadt|Größe|Allianz|Punkte|Insel|General" )
$operatorcom = GUICtrlCreateCombo("", 128, 48, 98, 25)
GUICtrlSetData(-1, "gleich|größer|kleiner|nicht gleich|")
$wertinput = GUICtrlCreateInput("", 232, 48, 98, 21)
$newsearch = GUICtrlCreateButton("neue Suche", 352, 48, 90, 25, 0)
$search = GUICtrlCreateButton("weiter suchen", 440, 48, 90, 25, 0)
$progressbar2 = GUICtrlCreateProgress(24, 75, 200, 20)
$Label3 = GUICtrlCreateLabel("Ergebnisse", 64, 104, 56, 17)
$Label2 = GUICtrlCreateLabel($counter1, 24, 104, 36, 17)
$ListView1 = GUICtrlCreateListView("Spieler|Stadt|Größe|Allianz |Punkte|Insel|General", 24, 136, 705, 377)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 95)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 95)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 95)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 95)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 95)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 95)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 95)



$file2 = FileOpen("libraries/spieler.txt", 0)
$file1 = FileOpen("libraries/groesse.txt", 0)
$file3 = FileOpen("libraries/punkte.txt", 0)
$file4 = FileOpen("libraries/allianz.txt", 0)
$file5 = FileOpen("libraries/coord.txt", 0)
$file6 = FileOpen("libraries/general.txt", 0)
$file = FileOpen("libraries/stadt.txt", 0)
GUISetState(@SW_SHOW)
While $line <= $counter1
GUICtrlCreateListViewItem(FileReadLine($file2,$lin e) & "|" & FileReadLine($file,$line) & "|" & FileReadLine($file1,$line) & "|" & FileReadLine($file4,$line) & "|" & FileReadLine($file3,$line) & "|" & FileReadLine($file5,$line) & "|" & FileReadLine($file6,$line), $ListView1)
$line = $line + 1
WEnd

Hat jemand vll. eine Idee wie das schneller gehen könnte? Habe ca. 30.000 Einträge pro File. der braucht bestimmt 10 oder mehr minuten.

Außerdem kann ich "GUICtrlCreateListViewItem()" keiner Variable zuweisen, weil die variablen das nicht packen. Ich möchte jedoch gerne, dass man bestimmte einträge in eine Liste Kopieren kann. Ist das möglich wenn das Listviewitem keinen Namen hat?

Sorry wenn ich so viele Fragen habe, bin nicht so erfahren im Umgang mit so großen Datenmengen.

Bitte um Rat
Dung3on is offline  
Old 07/01/2009, 02:10   #15
 
marcopolo1990's Avatar
 
elite*gold: 20
Join Date: Jan 2008
Posts: 2,632
Received Thanks: 8,492
kannst du wirklich keine test files mal in eine *.rar datei packen und hochladen?
dann wäre dir schneller geholfen als du villeicht gedacht hättest
marcopolo1990 is offline  
Reply


Similar Threads Similar Threads
cs viewer kann net meine dds datei lesen! )=
07/04/2010 - Flyff Private Server - 0 Replies
hi erstmal, ich habe ein problem... ich habe eigenes cs gemacht, aber wenn ich es angucken will, wird es in weiß angezeigt... ich habe die dds in alle ordner kopiert... warum ist das so? wie kann man das beheben? pls antwortet schnell =) mfg Lamoir
[VB.NET][TuT] Sequenziell eine Datei lesen und schreiben
02/26/2010 - Coding Tutorials - 0 Replies
Die Projekt Datei ist schon mit Visual Basic 2008 benutzbar. ================================================= === In diesem Tutorial zeige ich euch, wie wir aus einer datei lesen und diese schreiben. =================================== =================================== •Was wir brauchen - Label1 (BackColor = Control, BorderStyle = Fixed3D, AutoSize = False) - Label2 (Text = Nr)
.Bin Datei lesen?
09/30/2009 - General Coding - 14 Replies
Hallo! Ich habe ein Problem und zwar das ich habe eine .bin datei wenn ich diese mit Iso Buster öffne erhalte ich zwar die Datei und kann sie lesen aber da sind dann sehr viele zeichen! Kann mri vllt wer helfen?



All times are GMT +1. The time now is 12:51.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.