Falls du die Windows-Suche genutzt hast: Diese sucht nicht im Temp-Verzeichnis. ![]()
Beiträge von BugFix
-
-
Nur wenn ich das wieder mit IE mache, und iebodyreadhtml mache klappts wieder nicht.
Dann lass dir doch die Source in die Console ausgeben, die kann sich bei _INetGetSource und _IEBodyReadHTML etwas unterscheiden.Da fällt mir auf: du hast ja gar nicht die Source gelesen! - Sondern mit _IEDocReadHTML !! DAS ist ein Unterschied!
-
Noch zwei Sachen. Der string davor ist nicht eindeutig und kommt noch häufiger im Quelltext vor. Da mußt du die ganze Zeile nehmen.
[autoit]
Der String danach ist auch nicht korrekt, es fehlen: Zeilenumbruch, 3x TAB, wieder Zeilenumbruch, 3x TAB.
#include <INet.au3>
[/autoit]
#include <string.au3>
$source = _INetGetSource("http://board.raidrush.ws/showthread.php?t=605689")
$ftime = _StringBetween($source, '<a name="post8376871"><img class="inlineimg" src="http://www.xup.in/000/board.raidrush.ws/a_rr_style/statusicon/post_old.gif" alt="Alt" border="0" /></a>', @CRLF & @TAB & @TAB & @TAB & @CRLF & @TAB & @TAB & @TAB & "<!-- / status icon and date")
If IsArray($ftime) Then
msgbox(0, "Time", StringStripWS($ftime[0], 3))
Else
MsgBox(0, '', 'Fehler')
EndIfNoch besser geht es mit Regulären Ausdrücken.
-
Und bitte die Forenregeln berücksichtigen.
Auszug:ZitatFolgende Inhalte sind nicht erwünscht oder gar komplett verboten.
....
- Tools, um Nachrichten unerwünscht oft zu versenden (Spamming-Tools) -
sollte das script wieder beim ersten send beginnen . --- gibt doch sicher so was wie ine GOTO funktion ?? oder ??
GOTO gibt es zum Glück seit langer Zeit nicht mehr.
Schau mal in der Hilfe unter: Keyword/Statement Reference. Da findest du alles was dein Herz begehrt.
Übrigens solltest du dir die Wiederholfrequenz deiner Meldung gründlich überlegen, wenn du in meinem Chat alle 15 Sekunden eine Statusmeldung senden würdest, wärst du ruckzuck wegen Flooding gebannt.
Mach es doch so, dass nur eine Meldung gesendet wird, wenn dein Name im Chat erwähnt wird. Das macht Sinn und bewahrt dich vor unliebsamen Überraschungen.
-
Zum Einen ist dein _StringBetween falsch.
Schau dir mal an, wo die Zeit tatsächlich steht (du hast </a> unterschlagen):Spoiler anzeigen
PHP
Alles anzeigen<table id="post8376871" class="tborder" cellpadding="6" cellspacing="1" border="0" width="100%" align="center"> <tr> <td class="thead" style="font-weight:normal" > <!-- status icon and date --> <a name="post8376871"><img class="inlineimg" src="http://www.xup.in/000/board.raidrush.ws/a_rr_style/statusicon/post_old.gif" alt="Alt" border="0" /></a> Heute, 13:03 <!-- / status icon and date --> </td> <td class="thead" style="font-weight:normal" align="right"> #<a href="showpost.php?s=b76a1d714cf755a17dd1b0a260ba3482&p=8376871&postcount=1" target="new" rel="nofollow" id="postcount8376871" name="1"><strong>1</strong></a> </td> </tr>
Zum Anderen solltest du vielleicht die Tabelle ( _IETableGetCollection ) auslesen, macht sich besser bei mehreren Posts. -
In der kompilierten Datei kannst du keine Änderungen vornehmen. Jedenfalls nicht auf 'normale' Art und Weise.
Dazu müßtest du dann wohl noch einige AutoIt-Komponenten mit einbinden um eine neue EXE zu erszeugen. -
Hier für beliebige Länge, kannst in den String noch die Sonderzeichen einfügen:
[autoit]ConsoleWrite('Länge 30: ' & @TAB & _GetRandomStr(30) & @CRLF)
[/autoit][autoit][/autoit][autoit]
ConsoleWrite('Länge 90: ' & @TAB & _GetRandomStr(90) & @CRLF)Func _GetRandomStr($len)
[/autoit]
Local $aChar = StringSplit('01234AaÄäBbCcDdEeFfGgHhIiJjKkLlMmNnOoÖöPpQqRrSsßTtUuÜüVvWwXxYyZz56789','')
Local $str = ''
For $i = 1 To $len
$str &= $aChar[Random(1,$aChar[0],1)]
Next
Return $str
EndFunc -
Das hatte ich schon verstanden. Aber steht denn in der Exceltabelle bereits das Datum 15.02.2009 drin? Ist es das letzte Datum in der Spalte? Oder muß es erst eingetragen werden?
Und vor allem: Wo liegt der Sinn? Wenn ich jeden Tag prüfe ob heute der 15. / 16. ... ist und dann einfach in die Zelle daneben xx15 / xx16 schreibe, dann brauch ich doch kein externes Programm für. Das kannst du doch per Excelformel im Dokument selber tun.
Denn etwas außerhalb von Excel zu tun, was Excel mit VBA wesentlich einfacher und schneller erledigen kann, macht keinen Sinn.Hier ist eine Lösungsvariante:
[autoit]Local $sFilePath = 'Pfad.xls'
[/autoit][autoit][/autoit][autoit]
Local $sSuchbegriff = '15.02.2009'
Local $sWrite = 'xx' & StringLeft($sSuchbegriff, 2)Local $oExcel = ObjCreate("Excel.Application")
[/autoit][autoit][/autoit][autoit]
$oExcel.Visible = 0
Local $oBook = $oExcel.Workbooks.Open($sFilePath)
Local $oSheet = $oBook.Sheets(1)Local $Zelle, $Address
[/autoit][autoit][/autoit][autoit]
$Zelle = $oSheet.UsedRange.Find($sSuchbegriff)
If $Zelle <> '' Then $Address = $Zelle.Address
$oSheet.Range(StringReplace($Address, '$', '')).Offset(0, 1).Value = $sWrite$oExcel.DisplayAlerts = False ; unterdrückt Speichern - Nachfrage
[/autoit]
$oExcel.Save
$oExcel.Application.Quit -
wie kann ich den eine zelle lesen ohne excel dabei aufzumachen??
Das Datum kann ich auch jetzt auslesen aber wie durchsuche ich das dokument danach und gebe den wert wieder?
[autoit]
Du mußt Excel öffnen, kannst dies aber versteckt tun:$oExcel = _ExcelBookOpen($sFilePath, 0) ; mit 1 ist es sichtbar (Standard)
[/autoit]Deine 2te Frage kann ich nur beantworten, wenn ich weiß, was du willst. Ein bestimmtes Datum herauslesen, den letzten eingetragenen Wert....
Schreib erst mal was genau du willst. -
Bevor du überhaupt weitermachst: Lies mal die Forenregeln und prüfe das in Bezug auf deine Spiele.
Einige Spiele verbieten ausdrücklich ein automatisiertes Login! -
Geht das nur mit Bildern, oder kann man so auch Dateien (z. B. Textdateien) in ein Script einarbeiten und wenn es benötigt wird, das dann die Datei z. B. erst erstellt wird?
Wie Bernd schon sagte: Geht mit allen Dateien. Aber bei Text ist es nun nicht notwendig, den kannst du ja im Klartext speichern.
Ich verwende es auch um integrierte Dateien 'unsichtbar' zu halten. Nicht, damit der User nix von weiß, sondern um dem Urheberrechtschutz Genüge zu tun. So kann der User nicht direkt auf das eingebundene Material zugreifen.Aber mit FileInstall hab ich doch auch nur 1 Datei?
Aber nicht mehr nach dem ersten Run. Dann hast du die EXE plus per FileInstall installierte Dateien.
Mit dieser Methode hast du immer nur die EXE. -
Wo ist der Vorteil zu FileInstall.
Für mich ist es ein Vorteil, wenn nur eine Datei existiert. Wem das egal ist, der ist natürlich mit FileInstall genausogut bedient. -
Hi,
nun im zweiten Anlauf, da der erste Thread sich nicht mehr öffnen ließ:Wer sich schon mal näher die Funktion _SQLiteStartUp() in der SQLite-UDF angesehen hat, wird bemerkt haben, dass hier die SQLite Dll geladen wird, ohne dass sie auf dem System installiert ist.
Das wird gelöst, indem der Inhalt der Dll als Binärstring innerhalb des Includes gespeichert ist und zur Laufzeit temporär die Datei erstellt wird.
Daraus ergibt sich der Vorteil, dass man nur die reine EXE weitergibt und alle weiteren notwendigen Komponenten (Dll, Bilder etc.) nur temporär generiert.
Da ich diese Methode in letzter Zeit häufiger nutze, habe ich auch die Erstellung des Binärstrings und der Helperfunktion automatisiert.Mit dem Aufruf der Funktion: _CreateTmpBinaryCall($sPath, $sBin='$sData') wird die mit $sPath übergebene Datei als Binärstring in der Variablen $sBin gespeichert. Der Variablenname darf
2989 Zeichen nicht überschreiten, da sonst die max. Länge einer Befehlszeile überchritten wird.
Weiterhin wird die Funktion _CreateTmpFile($sFileName, $sBin) erstellt. Diese gibt den Pfad der temporär erzeugten Datei für den übergebenen Binärstring zurück.
Der erstellte String und die Funktion werden sowohl in die Console als auch in die Zwischenablage ausgegeben.Edit 17.9.2011 NEU v1.3
• Der temporäre Pfad kann ein Direktpfad sein oder eines der Makros @ScriptDir / @TempDir. Die Makros dürfen jedoch nicht als solche übergeben werden, da dann der Pfad sofort gewandelt wird, statt das Makro in die Funktionen einzusetzen. Als Standard (mit Default od. Leerstring) wird @ScriptDir verwendet, für @TempDir muß 'tmp' übergeben werden.
• Noch ein bischen Funktionskosmetik durchgeführtEdit 21.8.2011 NEU v1.1
Schnuffel hatte eine Idee zur Funktionserweiterung, die ich beim Korrektur lesen noch etwas ausgefeilt habe und herausgekommen aus diesem Brainstorming ist dieses:
• Übergabe nicht nur einer Datei, sondern eines Strings mit mehreren Pfaden möglich (Trenner: GUIDataSeparatorChar, Standard also: '|')
• Wird kein Datei-Pfad übergeben, öffnet sich ein Fenster zur Dateiauswahl (auch Multiselect möglich)
• Der temporäre Pfad ist jetzt wählbar
• Eine Funktion zur automatischen Löschung der temporären Dateien bei Skriptende, wird bei Bedarf miterstellt
• Ausgabe in die Konsole erfolgt nicht mehr (Zwischenablage reicht)Edit2 21.08.2011
Grrr, da hatte ich noch einen Bug drin. FileSelectFolder (also kein Pfad übergeben) mit nur einer Datei führte zu einem Fehler - gefixt.Hier werden String und Funktion erstellt
v 1.3
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#Region - TimeStamp
; 2011-09-17 13:12:56 v 1.3
#EndRegion - TimeStamp; Local $gifPath1 = 'C:\WINDOWS\system32\oobe\images\merlin.gif' ; -- XP
[/autoit] [autoit][/autoit] [autoit]
; Local $gifPath2 = 'C:\WINDOWS\system32\oobe\images\hand2.gif' ; -- XP
Local $gifPath1 = 'C:\Windows\System32\migwiz\PostMigRes\Web\base_images\System.gif' ; -- Win7
Local $gifPath2 = 'C:\Windows\System32\migwiz\PostMigRes\Web\base_images\Programs.gif' ; -- Win7
_CreateTmpBinaryCall($gifPath1 & '|' & $gifPath2);==================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Function Name..: _CreateTmpBinaryCall($sPath = '', $sBin='$bData', $sSavePath = @ScriptDir, $fFilesDelete = True)
; Description....: Erzeugt einen Binärstring der übergebenen Datei/en und erstellt eine Funktion um
; durch Aufruf des Strings die Datei temporär zu erstellen.
; Parameter(s)...: $sPath - Pfad der Datei/en, von der/denen ein Binärstring erstellt werden soll; GUIDataSeparatorChar als Trenner
; optional.: $sBin - Name der Variablen, die den String aufnehmen soll, max. Länge Variablenname: 89 Zeichen (Standard = $bData)
; optional.: $sSavePath - Pfad, in dem die temporären Dateien abgelegt werden (abschließender Backslash nicht zwingend, skriptgesteuert)
; • Default od. Leerstring setzt das Makro @ScriptDir ein (Standard)
; • 'tmp' setzt das Makro @TempDir ein
; Achtung: Hier KEIN Makro direkt verwenden, da dann der Pfad sofort gewandelt wird, statt das Makro in die Funktionen einzufügen
; $fFilesDelete - (True/False) Switch der festlegt, ob die Funktion zum Löschen der Tmp-Daten bei Skriptende erstellt werden soll
; Return Value(s): Erfolg - 1 Ausgabe des Strings und der Funktion _CreateTmpFile() in der Zwischenablage
; Fehler - 0 Set @error; 1 - keine Datei ausgewählt,
; 2 - Datei konnte nicht geöffnet werden (@Extended = n-te Datei, die den Fehler erzeugte)
; Author(s)......: BugFix ([email='bugfix@autoit.de'][/email])
; Modified.......: Schnuffel ([email='schnuffel@autoit.de'][/email])
;==================================================================================================
Func _CreateTmpBinaryCall($sPath = '', $sBin = '$bData', $sSavePath = Default, $fFilesDelete = True)
Local $sSeparator = Opt('GUIDataSeparatorChar')
If $sPath = '' Then
$sPath = FileOpenDialog('Datei/-en zum binären Includen auswählen:', @ScriptDir & '\', 'Alle Dateien (*.*)', 4)
If $sPath = '' Then Return SetError(1,0,0)
Local $aTmp = StringSplit($sPath, '|', 2), $ubound = UBound($aTmp)
$sPath = ''
If $ubound = 1 Then
$sPath = $aTmp[0]
Else
For $i = 1 To $ubound -1
$sPath &= $aTmp[0] & '\' & $aTmp[$i] & $sSeparator
Next
$sPath = StringTrimRight($sPath, StringLen($sSeparator))
EndIf
EndIf
If $sBin = '' Or IsKeyword($sBin) Then $sBin = '$bData'
If Not IsBool($fFilesDelete) Then $fFilesDelete = True
If $sSavePath = '' Or $sSavePath = Default Then
$sSavePath = '@ScriptDir & "\"'
ElseIf $sSavePath = 'tmp' Then
$sSavePath = '@TempDir & "\"'
Else
If StringRight($sSavePath,1) <> '\' Then $sSavePath &= '\'
EndIf
If StringLeft($sSavePath, 1) <> '@' Then $sSavePath = '"' & $sSavePath & '"'; == Deklarieren der lokalen Variablen
[/autoit] [autoit][/autoit] [autoit]
Local $sToWrite, $hFile = '', $bRead = '', $sLen = '', $nCount = 4000, $aTrimPath, $aFilenames = '['
Local $aSplitPaths = StringSplit($sPath, $sSeparator, 3)
$ubound = UBound($aSplitPaths)
Local $aFiles[$ubound+1][2]
$aFiles[0][0] = $ubound
For $i = 1 To $aFiles[0][0]
$aFiles[$i][0] = $aSplitPaths[$i-1]
$aFiles[$i][1] = StringRight($aSplitPaths[$i-1], StringLen($aSplitPaths[$i-1])-StringInStr($aSplitPaths[$i-1], '\', 1, -1))
$aFilenames &= '"' & $aFiles[$i][1] & '"' & ','
Next
$aFilenames = StringTrimRight($aFilenames,1) & ']'
$sToWrite = 'Global $sPath = ' & $sSavePath & ', ' & $sBin & '[' & $aFiles[0][0]+1 & '] = [' & $aFiles[0][0] & ']' & @CRLF; == Dateien binär einlesen
[/autoit] [autoit][/autoit] [autoit]
For $i = 1 To $aFiles[0][0]
$hFile = FileOpen($aFiles[$i][0], 16)
If @error Then Return SetError(2, $i, 0)
$bRead = FileRead($hFile)
FileClose($hFile)
$sLen = StringLen($bRead)
$sToWrite &= ';' & @TAB & 'String mit den Binärdaten von: ' & $aFiles[$i][1] & @CRLF
If $sLen < $nCount Then
$sToWrite &= $sBin & '[' & $i & ']' & ' &= "' & $bRead & '"' & @CRLF
Else
While 1
$sToWrite &= $sBin & '[' & $i & ']' & ' &= "' & StringLeft($bRead, $nCount) & '"' & @CRLF
$bRead = StringTrimLeft($bRead, $nCount)
$sLen = StringLen($bRead)
If $sLen <= $nCount Then
$sToWrite &= $sBin & '[' & $i & ']' & ' &= "' & $bRead & '"' & @CRLF
ExitLoop
EndIf
WEnd
EndIf
Next; == Ausgabe String Erstellen
[/autoit] [autoit][/autoit] [autoit]
$sToWrite &= @CRLF & ';' & @TAB & 'erstellt im TEMPDIR die Datei/-en aus allen vorhandenen ' & $sBin & ' Variablen' & @CRLF
$sToWrite &= 'Global '&$sBin&'names['&$aFiles[0][0]&'] = ' & $aFilenames & @CRLF
$sToWrite &= 'For $i = 1 To ' & $sBin & '[0]' & @CRLF
$sToWrite &= @TAB & 'Local $sFile = $sPath & ' & $sBin & 'names[$i -1]' & @CRLF
$sToWrite &= @TAB & 'Local $hFileOut = FileOpen($sFile, 2+8+16)' & @CRLF
$sToWrite &= @TAB & 'FileWrite($hFileOut, Binary(' & $sBin & '[$i]' & '))' & @CRLF
$sToWrite &= @TAB & 'FileClose($hFileOut)' & @CRLF & 'Next' & @CRLF & @CRLF; == Schreibt eine Funktion zum Löschen der Dateien bei Skriptende wenn $fFilesDelete = True
[/autoit]
If $fFilesDelete Then
$sToWrite &= '; registriert die Funktion "_DelBinaryTempFiles()", damit die temporär erstellten Dateien bei Beendigung wieder gelöscht werden' & @CRLF
$sToWrite &= 'OnAutoItExitRegister("_DelBinaryTempFiles")' & @CRLF & @CRLF
$sToWrite &= 'Func _DelBinaryTempFiles()' & @CRLF
$sToWrite &= @TAB & 'For $i = 1 To ' & $sBin & '[0]' & @CRLF
$sToWrite &= @TAB & @TAB & 'FileDelete($sPath & ' & $sBin & 'names[$i -1]'& ')' & @CRLF & @TAB & 'Next' & @CRLF
$sToWrite &= 'EndFunc' & @CRLF
EndIf
; == Kopieren der Daten in die Zwischenablage
ClipPut('')
If ClipPut($sToWrite) = 1 Then
Return MsgBox(64 + 262144, 'Daten kopiert', 'Die Daten wurden in die Zwischenablage kopiert.' & @CRLF & 'Einfügen in Ihr Script mit Ctrl + v.',5)
Else
MsgBox(64 + 262144, 'Fehler - Daten kopieren', 'Die Daten konnten nicht in die Zwischenablage kopiert werden.')
Return 0
EndIf
EndFunc ;==>_CreateTmpBinaryCallUnd das ist das Ergebnis zum Einfügen in das Skript:
Spoiler anzeigen
[autoit]Global $sPath = @ScriptDir & "\", $bData[3] = [2]
[/autoit] [autoit][/autoit] [autoit]
; String mit den Binärdaten von: System.gif
$bData[1] &= "0x4749463839613000300077000021F904010000F2002C0000000030003000871A19191F23372D2D2D25293B2E313E3636382D31423639453C404B3E4758385874403E3A44413A454548494A534E5057504E48504F5354524D565658435C745C5D63565F77576178605F6569675E67676A696A72706F7570706F757577072AAC082CB20935BB1736AD193AB6203EB70339C70036D2193CC11C41BC2744B8324EB73B53AC3954BA0742CA0747D51746C7144AD21F52CD2548C7264ED22B55CA2654D4304EC53853C63659D32D5DE03B67CA3D66DC4F5F83415ABD5B6C984B65B6516BA85364B75165BD5D6CB25C6EB85E72B46A748B6D77907B7C846277A76A79B5717DB4435AC3425CCA485EC3435ED14269C94C62C24A62CB4766D84E73DC5165C55166CB5369C35569CC586EC6596CCB536BD4536CDB596ED25478CA5A72C35D72C95374DB5C73DB5C7ED55C7BDF4769E54D75E2516DE45473E15371EA577EE7517AE85B75E45974EB5A78EC6274CE6378CB687CCC6073D46277DC6579DD6E7FD4647BE3607AEB6A7FE5687FEB607BF05C81E66A88D47C8BD47B94D26481E0648AEA6986E36A82EC6C88E66B8CE86780F16D85F16E92EC738DE57796EB769DF07C92F67FA2E3888889898A9387939E97979A818BB6818DBC9B9DA698A1AA9EA7B49EA5BCABAAAAA6AABBABAEBBA4B2BDB3B3B3B3B3BBBCBCBE8E9AD3929AC1819BEB8296F18199F388A4DB99A1C396A9D097ACD99CB1C182A3E385A4EE8DA4ED8BABEE89A8F091A8EF91A9F099ACF699B3EA94B1F09CB4F19CB9F1A1A7C4A3ABC1ABB6CEA0B0D7A3B3DAAAB6D0B5BACBBABCC2A4B8E7A0B9EFAABAEBA4BBF1A9BCF3AFBEF8A9C0D2BFC0C1BEC2CAB2CADCBAC2D4BCC4DCB9CEDFACC1F2B5C0E3B4CFE6B9C3E1BFC8E2B2C4F3B7C9F4BBCBF5BDD1E1C3C3C4C2C2C8C6C9CDCBCBCBC2C6D3C2CAD9CBCBD2CFCFD8C1D0DBCED0D3CCD0D8D1D0CED3D3D5D4D4DBD9D8D7DBDBDCC0CFF6C0CCFCC6D7E6C5D2F6C2D1F8CBD7F7CAD7FAD8DCE4D2DCFAD7E2ECDBE7F1E4E4E5E4E4EAEBEBEDE8ECF1EBF1F7FFFFE5F2F2F4F3F8FBF9F8F5FEFEFECEA4D6083053000000000100F5F578000002CEA4B4CEA49FF5F57408FF00E5091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336A1CF86E23454C9F68E9CAF62D5C388F0C2355D1F2A64E9F3E9E701DBBC60D1C386FE0500E5C52A58B1C3A74F008126428942F65CC9ACDE4E6AD9AB46ADD30B61B52058B4F3A76F0E429B4689C3A74E6A039F3C50BD7AD5CC6AC11EB368CA2B72051AC581583F58E1E43C1D49D2B572EECB367C180F58285AAD4268AC484449162650B17316CD8B4D1F36AAF3871D09E39DBBC39D92C5C97285A0253C589942D8ED1B04993461434CC9A9D259B9DECD7AF55C20E4F8C04070C932652A64CE172264D1943C09C3D4B060C98EDE7B350E9AAA8040E1C27BF9F082F73A68C1B57819DCBFFEA35ABFCAC588CDA4E7C47E44D1C272C7E37D13E853BA857B2F2E38FC57F152B469D5014CE0F59C051050B3724D8040E4FE0508620ADA8E2CA84FEB1924A2A8A8CA29E44BAB070451655DCA0428237E060220E7380A2A22A17AAA888228098220D45A4A81085622CA860C38E3B9AC805228824920828421E62E41EB8CC38912429F4E0240B2944B9A30C36CC30C51F83043208218400D225206BD832CD44F51491428E2AA810650A32B429C30C38A041C69C7BFCB1871A6AAC11063114BDB3020929A8990209849270420A27503945185434BA8619909631463514A523820884627AE90823187A42A23808F7C40E53EC606A0E7C282991311F7C70E9AB2274FF8A820C28244AC38938E4906B0E35F8A16A44B5A8290208AD8210EB0828242B430C34345BC30C33D4F02C0CA6504351071D2061840F45B0506B08E09E10C2092FC400C30BE8BE00C3BA2F58C38D458D643041061D6C7044122CD0F0420B25F4DBC2BFFEAE4BC3361A3552C10412483001061BF0000414E6BA6082BF2EB4A003A5114DE308124870B0C1061C70A0C1040B2CD00004109C3CC1041724F1030D119BE005C10FEDE288060FAC3C41051A7CBC41050E2C5080004417C040030C300081041558E0C317B7FCAA10278D6C104103113CD000020838D040051F77A0010613346076030E682076051008CD40051E30B48D2356373041040E20A0F5D60E10FF700002093830C106F562707004116810513B2479B389231E687035D6662780C0010D1C6080DF0774BE33062353A08003712F940E3624A5D38E3BEFB8E34D27907000F4027F777E40029D1B70C000010C60C0E5095080C002083492D037E97CA3BCEAACBF338F3DEF5CD2C8F41B3C70B9ED0618E0BBF603746F4003051050C0020A41B2CB37EEA4CFFA3CF348D308B6D94E0FF9040810E0FBF6BE07F07701FC03E0102490C0863BD8178E616C62128D4082D8E6B58975586312487840F60CD0BBCE15007CE48B482320C18970CCA31EEDA8C6302081844678231EF060073BD6A10D4D3C620381139A030AD0818B386212D868C73CDA110E7BD8031EF058C73A50C8414472144318A7A0C4061AE0112470301D3EA4470A87488E682CA318CB408602752290044E821AF088C70AAB180D725402035C3C88071C918975AC501B1ED8401A1582841BCA718E78CCA31E311210003B"
; String mit den Binärdaten von: Programs.gif
$bData[2] &= "0x4749463839613000300077000021F904010000F7002C0000000030003000871615151C1C1C1F212020222129292A2F2F303131325A5A5E4646645E5E615655745F7173606060666B696A6B6B62617F6E6C737374747679787A7A7B62628268678E6C6C897376877272937A7A937D7D9A7A7AA47E7EAE598668688A7976897C76907F65C26C5D97A65CAA9D6E91807F81807A968A6FA68D86AC7C95AE7281D93C93EB18A5F62884CD5FA1C07EA6E446D7AC67D2AF7C8989898282988E908F829D9187989D8E97978B9C95908C8D928F9194948E93939392959B949B9B9A95979A949A9A9A9A8282A18585AE8A8AA48C8CAA8585B18B8BB38C8CBC8F90AB8F98A69293AC979AAE9A9AAB9494B19393B99A9AB49C9CB986A2968BB49884A8B894A3A091A9A09CA5A69FA7A99EA9A49AA9ADA4959FA89AA3A1A29FA9B29CBEB19DA3A3A3A1A1ADA0AAA6A4ABABA8A3A6ABA6AAABAFA5ABABACA4A4B2A2A2BCA5AAB1A9A9B4ACACBAA5B2ABADB2B5AFB0BAACB9B6ACB9B8B4A8A9B6AAB7B4B4A7B5B9ABBBB2A8B3B3B3B2B2BCB3BCBBBAB1B7BCB3BBBABBBB9393C39999C3A4A4C1A9A9C4ACACC9A6A6D5AAAAD7AEB5C1B4B4C4B2B2CCB7B8C1BABAC4BBBBCBB5B5D2B0B0D9BBBBD3BCBCDAB9B9E5BDBDE9B0CD84ADCCB5BDC3AAB4C4BDB4CDBAB9C6BEB8CABEB5D1BDB6C1C0BDC3C2BACAC2BDD5C4D7B98AD6BC9BC1ACBAC4B6A4C4BDBBD4BEA3E2BB89E1BF90C1BCC2E1BBC6E7BBD1DAC08CD2C098CEC2AAC5C0B9DCC6A8D7C8B8D6D2A5D6D2B5EDC487EAC896F3D589F1D693E6CBA3EDD0A4EED3ADECD9AFEBD7B8F1D3AAF0D8A4F9DEBBE9E7A9F9EEADF6E5B1C6C7C7C4C3D2C3C3DBC6CFD0C9C7DCCAC9D4CDCDDCC5D2CDCED1D2C8DBD0D1C3CCD8C9D5D7D4C9D2D2D3D3D3DCD3D9D7D4D9DBDBDBDCC4C4E3C4C4EECBCBE4CCCCEBCACAF2CDCDFCCFD0E2D4D4E2D2D2EAD7DCE0DADBE3DADAE9D4D4F4D3D3FDDADAF2DCDCFCD2E2D7D5E2DCDDE1E4DFE8E8E5C4C9E3DBCEEDDFCFE1DCDCF5D0C7E2DFE0E5E2DBE4E4E4E4E4ECE6E8EBE8E8E7EAEAEBE3E3F3E3E3FCEBEDF2EBEBFDEEF1F5EFF0FEF0EFEFFFFFE5F3F4F4F3F3FDFEFEFEF5F578000002CEA4B4CEA49FF5F57408FF00EF091C48B0A0C18308132A5CC8B0A14383519CA409C44898356C0F33264CA348912143810001FA930690A25F16B769441868A2224002A15CBB664DD82F468C3E8E4C13250D4F2850A244F90353E31245DC80A51156115EBB76ECA2B2F346151B3460C01A7554142824A0344603716BF4C710206BECDABD7BD70E1EBC7870E37D9BDBAD1B376ED4A8457B2448A3933FD25EF2DC064F6A5AB76FBFC9A55BB75BB56A8F903CE9F330C99F46148BFCC197AF73BE7AF3E6259E4BBAB1634747FC0C7AF290C8C7344988382954D11AE1D09DE7D55B6CFAB19F23D01641699D868810211A10287860410391255100D10626CD1BDCD2D5061931442D4A4627D7E8C9FF1337AC109A24192C50A0600183062144924437C4081AB4BC1C9E406B34FCA1136D9DE9A34F3E03E6630F3BC42462481449143144114938F1C4507F3C614420FCF905A06703E2130E38047A26DA36D848038C478154B04121C248534443F80CC4C435017616CE26975C328E679FD5D3633EF3C4A38F06851043CC2F4730148103413CB3CC1967E07148269A587209259144728C67F580165A5CDFE8F3061A6F2492C8100C31100004F6E893491C715C71430F58A8E1061C9354E24C39B6C8124B2CB99803A63E68848187994430E4000112BCA34F33796A520C26946212071DA1B0A28A2AACA4F2092AA3B0625D9868A051889942300401011338DA8C269914FF638C2FCB9CB3CE3BEADC524B2DABA4B24A279D7C62072B72E9B3061A871E92EA428B4ED08E3ECF64920928A4D0FA8C3B6DE6936B2DB3CC02CB2BA27CC1C934DE188B6C22852CAB9003054CE08E3EC6F071071FA404B34C3AD8EA63CF3AE7DC820B2DDE8EF2090CD37063ACA1A82AC9A83BEBF001C619778062AD3BF8E0634F3ACE2C534B2EB0C0324A2A041BBCC61ABF5CF38BBA0949C0EA3AA480114419F366B2CCB515BBF38C2F992043CBB702C3208DC16F20F2CB2FE92A3C813190A4004417108362CC39EF18B8CE3299C8CB0ACF9FC450B0B16B045DF44211B0CA070B2BA410C4C37CF8F2CC3B169FE38BBC4C7F7BCA17A0FC7C702137A18C10040640FF10C40B2BA880421064DC2133DBEBC47B061941F4F0C92B9C7C220D34D8E8C3C61BBF6C238CDE074960400232D4E1420B219CE043193237734E337CC8D1C50F34C8D0C52B317C62DF34FAE051F236C0706E90040524C0831E6F9831C508221CF28E78EBF8E272EC32E4D045279CD8010C34B8E3318C6DBD33E4F90125902106C45A50910D3EE264335E173900C1C5FB5B90320C1F8D0093FD2FC4F0EE7B410E1870800441E0C10F821084333C251370C8063D48013F1EE4400678004621EA078DDCE14F7F4AFA5C0478A0031AD0400765608B26DA100C7AF84206D1A3C103CF90884330A21115D41DF7F6479009102002B223831CE6E0893D88831ED9D08433FF4C8842153E100C89C08322EA67416660702125180000CBE0093DE8E10C41E08378DA210F7924630E3F28A20C904808432CD1823364481425400A1EDCE10C2ECB41109AD1C5F120C314A5B0030F50588642BCC18C8DB060FE36C790090C0002EBE00118BAC0031AF00062BE10875A96810C72A0831576D8C11A0EA1864098B189DB20060D0712C506D8831425809D0EBA20AFC3E1C31DB362852E7AD18A4320E20A80F0242845C910190CA0016C43"
$bData[2] &= "210F82708762D22A1D154B873140C10A5EEC821088A802510C81C66D306394022981001AF0AE44C8E06C6F4CDBBDEC818F773CC318A4708524B490071C40E10F819007E6F2670D6CDE238A0EA09830F000FF062F98615E13AB5933D0690529B4C1044A208A36D8803F765CC39E130080031C250E61F8C20C1013E7B5DAB4AF65B4410A060581097CB2D05FA085970C294317D6E60E77C8A319C5CC84B56E25A075C00107201D03083CC084343C830DC3204650ED4990A939C319EF705BB58CF18C5BC1F2A352A88114C400820ED8000AC3580322F0708DEEADE41EDAB886337CE10B63206319B3E283156A600213D4200B1FE8000998908826B0C11A50204221BE5A9062C0CA18E96893368A3189B5B6E1020BF0C012DEC00636CC20097C4D48338AE10B659CE319F6C8473832F186195CC00250C80011D010D986944319AC28873A32311044182711A5D5082B9611DBDA03463620003B"; erstellt im TEMPDIR die Datei/-en aus allen vorhandenen $bData Variablen
[/autoit] [autoit][/autoit] [autoit]
Global $bDatanames[2] = ["System.gif","Programs.gif"]
For $i = 1 To $bData[0]
Local $sFile = $sPath & $bDatanames[$i -1]
Local $hFileOut = FileOpen($sFile, 2+8+16)
FileWrite($hFileOut, Binary($bData[$i]))
FileClose($hFileOut)
Next; registriert die Funktion "_DelBinaryTempFiles()", damit die temporär erstellten Dateien bei Beendigung wieder gelöscht werden
[/autoit] [autoit][/autoit] [autoit]
OnAutoItExitRegister("_DelBinaryTempFiles")Func _DelBinaryTempFiles()
[/autoit]
For $i = 1 To $bData[0]
FileDelete($sPath & $bDatanames[$i -1])
Next
EndFunc -
[autoit]
$s = '<!-- status icon and date -->' & @CRLF
[/autoit][autoit][/autoit][autoit]
$s &= '<a name="fakename"><img class="inlineimg" src="http://fake.com/abc.gif" alt="Alt" border="0" /></a>' & @CRLF
$s &= '25.12.2008, 17:31' & @CRLF & @CRLF
$s &= '<!-- / status icon and date -->' & @CRLF
$s &= '</td>'$ret = StringRegExp($s, '\d{1,2}:\d{1,2}', 1)
[/autoit]
If IsArray($ret) Then MsgBox(0, '', $ret[0]) -
Diese Datei ist es:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. -
Der einfachste Weg:
Verwende in der Ausgabe keine TrueType-Schriftart, sondern z.B. Courier. Dann kannst du per Stringlänge den genauen Abstand festlegen, da hier alle Zeichen denselben Platz einnehmen. -
Ich hab jetzt noch nicht weiter nachgeschaut, aber wenn es per XML definiert wird, kann man evtl. die fertigen Files von Notepad++ verwenden. Dort gibt es ebenfalls eine Syntaxunterstützung für AutoIt per XML.
-
Du schreibst ja immer wieder die bereits bestehenden Einträge mit ein. Somit mußt du vor dem Befüllen alle Einträge löschen.
Das machst du mit: _GUICtrlListView_DeleteAllItems($hWnd) -
Ein Chatverlauf soll glaube ich auch nicht sortiert werden

Wo du Recht hast, hast du Recht. 