|
You last visited: Today at 03:13
Advertisement
Tratsch rund um Autoit / Autoit Talk | kleinere Fragen
Discussion on Tratsch rund um Autoit / Autoit Talk | kleinere Fragen within the AutoIt forum part of the Coders Den category.
05/12/2012, 17:19
|
#46
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Ich parse gerade an etwas rumm, dabei hab ich ein Problem mit meinem $Files Array.
$Data =
Code:
00000000EC0000005D0000001C273F49000000005346540000000000555650414E0000000000009C010000610000001C273F490000000053465400000000005556574152424C4500000000000049010000530000001C273F490000000053465400000000005556524F54415445000000000000050300007B0000001C273F490000000053465400000000005753504F53585A50414E000000000000FD010000370000001C273F490000000053465400000000005753454E565245464C454354464C4F4F5200000000000034020000D10000001C273F490000000053465400000000005753504F53524F5441544541524F554E445900
Code:
While True
$i += 1
ReDim $Files[$i][3]
$posi = StringInStr($data, "1C273F49", 0, 1, $posi + 8)
If $posi Then
$Files[$i - 1][1] = Dec(ConvertRezBack(StringMid($data, $posi - 16, 8)))
$Files[$i - 1][2] = Dec(ConvertRezBack(StringMid($data, $posi - 8, 8)))
For $c = 2 To 8 Step 2
_ArrayDisplay($Files)
$Files[$i - 1][0] &= BinaryToString("0x" & (StringMid($data, $posi + 22 - $c, 2)))
Next
Else
ExitLoop
EndIf
ConsoleWrite($posi & @CRLF)
WEnd
Die For Schleife:
Code:
For $c = 2 To 8 Step 2
_ArrayDisplay($Files)
$Files[$i - 1][0] &= BinaryToString("0x" & (StringMid($data, $posi + 22 - $c, 2)))
Next
löscht mir meine alten Ergebnisse, die ich weiter oben über
Code:
$Files[$i - 1][1] = Dec(ConvertRezBack(StringMid($data, $posi - 16, 8)))
$Files[$i - 1][2] = Dec(ConvertRezBack(StringMid($data, $posi - 8, 8)))
ermittelt habe.
Wo ist das Problem?^^
|
|
|
05/12/2012, 17:20
|
#47
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
@Der-Eddy:
Wie liest du den Quellcode den aus?
Code:
<script type="text/javascript"> vbmenu_register("postmenu_XXX", true); </script>
findet sich nur im Quelltext, wenn du eingeloggt bist. Bei einem einfachen InetRead() Befehl wäre es ja so, als ob du die Seite als Gast besuchst. Gäste verfügen nicht über dieses Menü, sondern werden bei einem Klick auf den Namen direkt auf das Profil weitergeleitet.
Würde jetzt einfach mal vermuten, dass es deine Fehlerquelle ist.
Zeilenumbrüche kannst du je nach Quelle mit @CR, @LF oder @CRLF finden.
Code:
#include <Array.au3>
$Source = BinaryToString(InetRead("http://www.elitepvpers.com/forum/autoit/1868201-tratsch-rund-um-autoit-kleinere-fragen-5.html#post16651583", 1))
If Not @error Then
$bla = StringRegExp($Source, '<meta property="fb:app_id" content="(.*?)" />' & @CRLF & _
'<meta property="og:site_name" content="(.*?)" />', 1)
If IsArray($bla) Then _ArrayDisplay($bla)
EndIf
@CR → \r
@LF → \n
@CRLF → \r\n
Die Escape-Zeichen kannst du verwenden, wenn du die Funktion StringFormat() verwendest:
Code:
#include <Array.au3>
$Source = BinaryToString(InetRead("http://www.elitepvpers.com/forum/autoit/1868201-tratsch-rund-um-autoit-kleinere-fragen-5.html#post16651583", 1))
If Not @error Then
$bla = StringRegExp($Source, StringFormat('<meta property="fb:app_id" content="(.*?)" />\r\n<meta property="og:site_name" content="(.*?)" />'), 1)
If IsArray($bla) Then _ArrayDisplay($bla)
EndIf
|
|
|
05/12/2012, 18:09
|
#48
|
elite*gold: 400
Join Date: Nov 2008
Posts: 67,905
Received Thanks: 19,505
|
Quote:
Originally Posted by KDeluxe
@Der-Eddy:
Wie liest du den Quellcode den aus?
Code:
<script type="text/javascript"> vbmenu_register("postmenu_XXX", true); </script>
findet sich nur im Quelltext, wenn du eingeloggt bist. Bei einem einfachen InetRead() Befehl wäre es ja so, als ob du die Seite als Gast besuchst. Gäste verfügen nicht über dieses Menü, sondern werden bei einem Klick auf den Namen direkt auf das Profil weitergeleitet.
Würde jetzt einfach mal vermuten, dass es deine Fehlerquelle ist.
Zeilenumbrüche kannst du je nach Quelle mit @CR, @LF oder @CRLF finden.
Code:
#include <Array.au3>
$Source = BinaryToString(InetRead("http://www.elitepvpers.com/forum/autoit/1868201-tratsch-rund-um-autoit-kleinere-fragen-5.html#post16651583", 1))
If Not @error Then
$bla = StringRegExp($Source, '<meta property="fb:app_id" content="(.*?)" />' & @CRLF & _
'<meta property="og:site_name" content="(.*?)" />', 1)
If IsArray($bla) Then _ArrayDisplay($bla)
EndIf
@CR → \r
@LF → \n
@CRLF → \r\n
Die Escape-Zeichen kannst du verwenden, wenn du die Funktion StringFormat() verwendest:
Code:
#include <Array.au3>
$Source = BinaryToString(InetRead("http://www.elitepvpers.com/forum/autoit/1868201-tratsch-rund-um-autoit-kleinere-fragen-5.html#post16651583", 1))
If Not @error Then
$bla = StringRegExp($Source, StringFormat('<meta property="fb:app_id" content="(.*?)" />\r\n<meta property="og:site_name" content="(.*?)" />'), 1)
If IsArray($bla) Then _ArrayDisplay($bla)
EndIf
|
Ich logge mich über TCP ein und lese dann den Quelltext aus
Mit '<span style="color:(.*?)">(.*?)</span><!-- google_ad_section_end --></a>' finde ja schon was blos nicht genau das was ich suche
|
|
|
05/12/2012, 18:24
|
#49
|
elite*gold: 0
Join Date: Feb 2010
Posts: 178
Received Thanks: 4
|
ehhm hab noch ne frage...gibt es ne möglichkeit, dass sich der script von selbst in einen anderen ordner kopirt..kann nur ne kopie sei....muss nich der script selbst sein
mfg mo
|
|
|
05/12/2012, 18:55
|
#50
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
Code:
FileMove(@ScriptFullPath,@TempDir,1)
|
|
|
05/12/2012, 21:49
|
#51
|
elite*gold: 0
Join Date: Feb 2010
Posts: 178
Received Thanks: 4
|
so nächste frage
ehhm wenn ich einen porcess mit ProcessClose beenden will geb ich ja die pid an also :
ProcessClose ("zb. 3405")
was ist wenn sich die pid des programms nach jedem start ändert??
wie kann ich die nach jedem start neu raussuchen lassen?
.................
und Achat...danke hat mir sehr geholfen :d
|
|
|
05/12/2012, 21:58
|
#52
|
elite*gold: 0
Join Date: Mar 2011
Posts: 8,645
Received Thanks: 3,454
|
Quote:
Originally Posted by mo.tennis
so nächste frage
ehhm wenn ich einen porcess mit ProcessClose beenden will geb ich ja die pid an also :
ProcessClose ("zb. 3405")
was ist wenn sich die pid des programms nach jedem start ändert??
wie kann ich die nach jedem start neu raussuchen lassen?
.................
und Achat...danke hat mir sehr geholfen :d
|
$PID = ProcessExists("Prozess.exe")
|
|
|
05/12/2012, 21:59
|
#53
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
Quote:
Originally Posted by mo.tennis
so nächste frage
ehhm wenn ich einen porcess mit ProcessClose beenden will geb ich ja die pid an also :
ProcessClose ("zb. 3405")
was ist wenn sich die pid des programms nach jedem start ändert??
wie kann ich die nach jedem start neu raussuchen lassen?
.................
und Achat...danke hat mir sehr geholfen :d
|
Quote:
|
The name or PID of the process to terminate.
|
ProcessClose ("firefox.exe")
|
|
|
05/12/2012, 22:02
|
#54
|
elite*gold: 0
Join Date: Feb 2010
Posts: 178
Received Thanks: 4
|
das von omer36 hatte ich schon ausprobiert..werde jetzt das von FReddy ausprobieren
Edit:
Freddy was muss ich ejtzt genau schreiben?? ich hab jetzt:
Code:
While 1
$PID = ProcessExists("RegClean Pro")
ProcessClose ("RegClean Pro")
WEnd
vorher sah es so aus
Code:
While 1
ProcessClose ("3508")
WEnd
|
|
|
05/12/2012, 22:17
|
#55
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Quote:
Originally Posted by mo.tennis
das von omer36 hatte ich schon ausprobiert..werde jetzt das von FReddy ausprobieren
Edit:
Freddy was muss ich ejtzt genau schreiben?? ich hab jetzt:
Code:
While 1
$PID = ProcessExists("RegClean Pro")
ProcessClose ("RegClean Pro")
WEnd
vorher sah es so aus
Code:
While 1
ProcessClose ("3508")
WEnd
|
Code:
While 1
$PID = ProcessExists("RegClean Pro")
ProcessClose ($PID)
WEnd
Denke aber, du musst "RegClean Pro.exe" schreiben.
|
|
|
05/13/2012, 03:27
|
#56
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Wenn es sich um den Fenstertitel handelt könnte
Code:
WinClose("RegClean Pro")
evtl. ausreichen.
|
|
|
05/13/2012, 14:47
|
#57
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Kennt jemand zufällig eine Möglichkeit, in Files abschnitte zu löschen? Also etwa Zeichen 100-200 von 1000. Das File sollte nicht in den Arbeitsspeicher geladen werden, da es sehr groß sein kann.
FileReadLine sollte auch nicht verwendet werden, da kein Umbruch vorhanden ist.
|
|
|
05/13/2012, 16:53
|
#58
|
elite*gold: 574
Join Date: Nov 2010
Posts: 2,498
Received Thanks: 726
|
Quote:
Originally Posted by Lawliet!
Kennt jemand zufällig eine Möglichkeit, in Files abschnitte zu löschen? Also etwa Zeichen 100-200 von 1000. Das File sollte nicht in den Arbeitsspeicher geladen werden, da es sehr groß sein kann.
FileReadLine sollte auch nicht verwendet werden, da kein Umbruch vorhanden ist.
|
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <String.au3>
Global $File = "DeineDatei.txt"
Global $Lenght = StringLen(FileRead($File))
$Test = GUICreate("Test", 347, 80, 192, 164)
$Label1 = GUICtrlCreateLabel("Zeichen löschen von...", 8, 11, 113, 17)
$FromInput = GUICtrlCreateInput("", 128, 8, 81, 21, BitOR($ES_AUTOHSCROLL,$ES_NUMBER))
$label2 = GUICtrlCreateLabel("bis...", 8, 43, 26, 17)
$ToInput = GUICtrlCreateInput("", 40, 40, 81, 21, BitOR($ES_AUTOHSCROLL,$ES_NUMBER))
$Label3 = GUICtrlCreateLabel("Maximal: "&$Lenght, 136, 43, 100, 17)
$StartButton = GUICtrlCreateButton("Go", 248, 16, 57, 41, 0)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $StartButton
If $ToInput <= $Lenght and $FromInput > 0 Then Exitloop
Exit
EndSwitch
WEnd
GuiSetState(@SW_HIDE)
Global $String = FileRead($File),$iFrom = GuiCtrlRead($FromInput),$iTo = GuiCtrlRead($ToInput)
Global $StringMid = StringMid($String,$iFrom,($iTo-$iFrom))
_ReplaceStringInFile($File,$StringMid,"")
Hoffe ist das, was du wolltest ^^
|
|
|
05/13/2012, 17:04
|
#59
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
Quote:
Originally Posted by KDeluxe
Wenn es sich um den Fenstertitel handelt könnte
Code:
WinClose("RegClean Pro")
evtl. ausreichen.
|
Code:
Opt('WinTitleMatchMode',2)
ProcessClose(WinGetProcess('RegClean Pro'))
;Für weitere Informationen F1 drücken oder fragen ;)
MfG
EDIT
Quote:
Originally Posted by Njahs
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <String.au3>
Global $File = "DeineDatei.txt"
Global $Lenght = StringLen(FileRead($File))
$Test = GUICreate("Test", 347, 80, 192, 164)
$Label1 = GUICtrlCreateLabel("Zeichen löschen von...", 8, 11, 113, 17)
$FromInput = GUICtrlCreateInput("", 128, 8, 81, 21, BitOR($ES_AUTOHSCROLL,$ES_NUMBER))
$label2 = GUICtrlCreateLabel("bis...", 8, 43, 26, 17)
$ToInput = GUICtrlCreateInput("", 40, 40, 81, 21, BitOR($ES_AUTOHSCROLL,$ES_NUMBER))
$Label3 = GUICtrlCreateLabel("Maximal: "&$Lenght, 136, 43, 100, 17)
$StartButton = GUICtrlCreateButton("Go", 248, 16, 57, 41, 0)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $StartButton
If $ToInput <= $Lenght and $FromInput > 0 Then Exitloop
Exit
EndSwitch
WEnd
GuiSetState(@SW_HIDE)
Global $String = FileRead($File),$iFrom = GuiCtrlRead($FromInput),$iTo = GuiCtrlRead($ToInput)
Global $StringMid = StringMid($String,$iFrom,($iTo-$iFrom))
_ReplaceStringInFile($File,$StringMid,"")
Hoffe ist das, was du wolltest ^^
|
Wenn du das File vorher mit FileOpen öffnest und mit FileClose schließt, werden große Dateien sehr viel schneller gelesen.
Quote:
|
Originally Posted by HelpFile
If a filename is given rather than a file handle - the file will be opened and closed during the function call - for parsing large text files this will be much slower than using filehandles.
|
MfG
|
|
|
05/13/2012, 17:13
|
#60
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Quote:
Originally Posted by Achat
Code:
Opt('WinTitleMatchMode',2)
ProcessClose(WinGetProcess('RegClean Pro'))
;Für weitere Informationen F1 drücken oder fragen ;)
MfG
EDIT
Wenn du das File vorher mit FileOpen öffnest und mit FileClose schließt, werden große Dateien sehr viel schneller gelesen.
MfG
|
1-x Gigabyte aber nicht 
_ReplaceStringinFile() schau ich mir an, danke
|
|
|
Similar Threads
|
[Sammelthread]Fragen zu Autoit wie man Hacks herstellt(Autoit) + Antworten
11/16/2011 - Metin2 - 0 Replies
Hallo Liebe Community,
Ich habe diesen Thread aufgemacht weil manche leute mit Autoit nicht mehr weiterkommen wie man Hack herstellt ,ich habe mit schon ein Multihack mit Autoit herstellt das war einfach .Da viele User nicht weiterkommen werden habe ich mich entschieden ein Thread aufzumachen mit Fragen und ich den dann Antworten kann und helfen kann!
------------------------------------------------- ---------------------------
Mein Multihack:...
|
All times are GMT +1. The time now is 03:15.
|
|