Register for your free account! | Forgot your password?

Go Back   elitepvpers › Coders Den › AutoIt
You last visited: Today at 23:48

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

Advertisement



wie :(doppelpunkt) mit autoit aus einander halten?

Discussion on wie :(doppelpunkt) mit autoit aus einander halten? within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 65
Join Date: May 2011
Posts: 454
Received Thanks: 17
wie :(doppelpunkt) mit autoit aus einander halten?

habe eine liste wo etwas so drinne steht: test:test
und da weis ich nicht wie ich das : rausfiltern soll, also so dass der vordere abschnitt in eine variable gespeichert wird und auch der hintere teil in eine eigene variable.
sanoj2011 is offline  
Old   #2
 
elite*gold: 0
Join Date: Jan 2008
Posts: 539
Received Thanks: 46
Wie ist die Liste aufgebaut? So kannst du es entweder über StringRegExp oder StringSplit lösen, kommt aber wie gesagt auf den kompletten Aufbau der Liste an. Wei sind die Einträge untereinander getrennt? Neue Linie ? Simikolon?
iXDe is offline  
Old   #3


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Warscheinlich gehts um "Benutzername:Passwort" ?
PHP Code:
$UserInfo = StringSplit($String, ":") 
$UserInfo ist dann ein Array.
[0] Anzahl Felder
[1] Benutzername
[2]Passwort
Lawliet is offline  
Old   #4
 
elite*gold: 0
Join Date: Jan 2008
Posts: 539
Received Thanks: 46
@Lawliet:
Er spricht jedoch von einer Liste -> mehrere Einträge. Dann hast du immer
[1]Username
[2]PasswortUsername
[3]PasswortUsername
[4]PasswortUsername

Man müsste also erst nach @CRLF (Oder wie auch immer die einzelnen Einträge getrennt sind) splitten und danach erst nach :
iXDe is offline  
Old   #5


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
PHP Code:
#include <File.au3>
#include <Array.au3>
Dim $UserNP[1000][2]
$i = 1
$Lines 
= _FileCountLines("C:\Test.txt")
Do
$Line = FileReadLine("C:\Test.txt", $i)
$Split = StringSplit($Line, ":")
$UserNP[0][0] += ($Split[0]-1)
$UserNP[$i][0] = $Split[1]
$UserNP[$i][1] = $Split[2]
$i += 1
Until $i 
= $Lines 
$UserNP ist ein Array mit allen eingelesenen Username:Passwords.
Kann man sich mit _Arraydisplay anschauen.
Lawliet is offline  
Old   #6
 
elite*gold: 0
Join Date: Jan 2008
Posts: 539
Received Thanks: 46
Quote:
Dim $UserNP[1000][2]
Bisschen ressourcenfressend, oder? Und was, wenn mehr Linien als 1000 da sind?

Entweder man erstellt es oben mit Dim $UserNP [1][1] und macht später Redim $UserNP [$Lines][2] oder man erstellt das Array nachdem man $Lines hat.

Übrigens: Warum benutzt du Do, wenn es eine For-Schleife einfacher machen würde?
iXDe is offline  
Old   #7


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Quote:
Originally Posted by iXDe View Post
Bisschen ressourcenfressend, oder? Und was, wenn mehr Linien als 1000 da sind?

Entweder man erstellt es oben mit Dim $UserNP [1][1] und macht später Redim $UserNP [$Lines][2] oder man erstellt das Array nachdem man $Lines hat.

Übrigens: Warum benutzt du Do, wenn es eine For-Schleife einfacher machen würde?
Naja, als Denkhilfe sollte es doch auch mit [1000][2] gehen?
Ich sehe da keinen Nachteil, einer For Schleife gegenüber.
Lawliet is offline  
Old   #8
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
man könnte das ganze auch noch etwas kompakter lösen:
Code:
StringRegExp(FileRead('liste.txt'), '(.*?):(.*?)[\r\n]{1}', 4)
lolkop is offline  
Old   #9


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Code:
#include <Array.au3>

Global $userData

$list = FileRead('liste.txt')

$rows = StringSplit($list, @CRLF, 1)
$cols = StringSplit($rows[1], ':')

Dim $userData[$rows[0]][$cols[0]]

For $i = 1 To $rows[0]
	$cols = StringSplit($rows[$i], ':')
	For $j = 1 To $cols[0]
		$userData[$i - 1][$j - 1] = $cols[$j]
	Next
Next

_ArrayDisplay($userData)
EDIT:

Hier mal mit einer Art GUI:

Code:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <GuiListView.au3>

Local $listview, $userData

GUICreate("Userdata", 425, 350, 100, 200, -1, $WS_EX_ACCEPTFILES)
$listview = GUICtrlCreateListView("", 10, 10, 405, 330)
_GUICtrlListView_AddColumn ($listview, "Username", 150)
_GUICtrlListView_AddColumn ($listview, "Passwort", 200)

GUICtrlSetState(-1, $GUI_DROPACCEPTED)
GUISetState()

$list = FileRead('liste.txt')
$rows = StringSplit($list, @CRLF, 1)
$cols = StringSplit($rows[1], ':')

Dim $userData[$rows[0]][$cols[0]]

For $i = 1 To $rows[0]
	$cols = StringSplit($rows[$i], ':')
	For $j = 1 To $cols[0]
		$userData[$i - 1][$j - 1] = $cols[$j]
	Next
Next

$cnt = $rows[0] - 1

For $k = 0 To $cnt
    $idx = _GUICtrlListView_AddItem ($listview, $userData[$k][0])
    _GUICtrlListView_AddSubItem ($listview, $idx, $userData[$k][1], 1)
Next

While 1
    $nMsg = GUIGetMsg ()
    Switch $nMsg
        Case -3
            Exit
    EndSwitch
WEnd
Whoknowsit is offline  
Reply


Similar Threads Similar Threads
Autoit Variable nach Doppelpunkt beenden
03/26/2011 - AutoIt - 4 Replies
Hallo =) ich würde gerne ein Script zum pingen von Proxy Servern ertsellen. Die Proxys habe als Variable in folgendem Format :xx.yy.ee:port Zum Pingen braucht man ja nur den vorderen Teil. Gibt es eine Möglichkeit, nur den vorderen Teil zu verwenden?
[FRAGE] AutoIT eine Taste gedrückt halten?
12/09/2010 - AutoIt - 2 Replies
Was muss ich eintippen, damit AutoIT z.b. die Taste F 5Sekunden lang "gedrückt" hält?
Wie mache ich es das autoit 2 Tasten nach einander Sendet
09/04/2009 - AutoIt - 2 Replies
Hallo :) Ich habe versucht mal einen einfachen Tab+1 Bot zu bauen,für World of Warcraft einfach um den wo abzustellen und er tötet die ganze zeit einfach mobs für Ruf :) Jetzt hab ich dieses scritp(?) hier: AutoItSetOption("WinTitleMatchMode", 4) $windowname="World of Warcraft" $handle = WinGetHandle($windowname, "") If @error Then MsgBox(4096, "Error", "Fenster konnte nicht gefunden werden") Else
autoit taste beliebig lange gedrückt halten
02/12/2007 - Off Topic - 10 Replies
moin, kennt jemand den befehl für autoit das ich zb 35 sec. lang w gedrückt halte? Thanx eddie :bandit:



All times are GMT +1. The time now is 23:48.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

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