FileReadLine() und StringLen() sind hier die Stichwörter. ![]()
Achja, und: Herzlich willkommen hier im Forum!
FileReadLine() und StringLen() sind hier die Stichwörter. ![]()
Achja, und: Herzlich willkommen hier im Forum!
Oftmals stört die Antivirenprogramme auch nur der Packer "UPX". Wenn Du die Skripte ohne UPX kompilierst, kann das in manchen Fällen schon helfen.
Alina, mein Script macht genau das. Also immer wenn 2 und mehr @crlf hintereinander stehen, werden sie zu einem reduziert.
Voraussetzung hierfür ist allerdings, dass die Zeilen mit @crlf abgeschlossen sind (Windows-typisch) und nicht nur mit @lf oder @cr.
Weitere Vorraussetzung ist, dass die @crlf wirklich hintereinander stehen und sich nicht ein oder mehrere Leerzeichen in den Zeilen befinden (wären genaugenommen ja dann auch keine Leerzeilen).
Edit: Wobei man auch für andere Texte ein Pattern schreiben könnte. Bräuchte dann aber mal ein Beispieltext.
Wenn Du nur FileWrite (mit Dateinamen) verwendest, wird der String aber an eine bereits bestehende Datei angehängt (Append-Mode) und nicht überschrieben.
Na, dann aber noch kürzer:
$sFile = StringRegExpReplace(FileRead('in.txt'), '(\r\n){2,}', @CRLF)
$hFile = FileOpen('out.txt', 2)
FileWrite($hFile, $sFile)
FileClose($hFile)
Zu 4. hatte ich zwei kleine Funktionen geschrieben:
[autoit]
ConsoleWrite(_BinToString('01010100011001010111001101110100') & @CRLF)
ConsoleWrite(_StringToBin('Test') & @CRLF)
Func _BinToString($bin)
Local $aChr = StringRegExp($bin, '.{8}', 3), $dec, $string = ''
For $k = 0 To UBound($aChr) - 1
$dec = 0
For $i = 8 To 1 Step -1
$dec += 2 ^ (8 - $i) * StringMid($aChr[$k], $i, 1)
Next
$string &= Chr($dec)
Next
Return $string
EndFunc ;==>_BinToString
Func _StringToBin($string)
Local $aChr = StringSplit($string, ''), $bin = ''
For $k = 1 To $aChr[0]
For $i = 7 To 0 Step -1
$bin &= (BitAND(Asc($aChr[$k]), 2 ^ $i) = 2 ^ $i) * 1
Next
Next
Return $bin
EndFunc ;==>_StringToBin
Hört sich interessant an.
Bezüglich meiner SQLite-Erfahrung befindest Du Dich aber im Irrtum. Das Thema habe ich bisher komplett ausgespart (sprich: Erfahrung = Null).
Deswegen sollte bei mir zum speichern auch eher mein Beispiel zur Listview-Datenbank zum Einsatz kommen. Generell gefällt mir die Funktionalität des Drop-Icons und kommt meiner Art der Dateien-Verwaltung sehr entgegen. Mein Programm wird sich wohl (vorerst) in diese Richtung bewegen. Zur Auswahl des Löschdatums stelle ich eine Datumseingabe oder eine Eingabe "in ... Tagen" zur Verfügung. Dann wird es eine Listview geben, in der alle Einträge aufgelistet sind (mit: "Löschdatum", "vorher nachfragen" und "Dateipfad").
Ich finde es aber gut, wenn sich mehrere unabhängig voneinander an das Thema wagen. Unsere Wettbewerbe haben eigentlich immer ganz gut gezeigt, dass dabei viel Gutes entstanden ist. ![]()
Unter WindowsXP funktioniert das (Vista nicht getestet):
[autoit]
If Not IsDeclared('WS_EX_COMPOSITED') Then Global Const $WS_EX_COMPOSITED = 0x02000000
$Form1 = GUICreate("Form1", 150, 150, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_SYSMENU, $WS_CAPTION, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS), $WS_EX_COMPOSITED)
Edit:
Und wenn Du es so änderst, dann wird die Größe bereits beim ziehen des Fenster angepasst:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
If Not IsDeclared('WS_EX_COMPOSITED') Then Global Const $WS_EX_COMPOSITED = 0x02000000
$Form1 = GUICreate("Form1", 150, 150, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_SYSMENU, $WS_CAPTION, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS), $WS_EX_COMPOSITED)
$pic = GUICtrlCreatePic("Pic.jpg", 0, 0, 150, 150)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_SIZE, 'WM_SIZE')
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam)
$p = WinGetPos($Form1)
GUICtrlSetPos($pic, 0, 0, $p[2], $p[3])
GUICtrlSetImage($pic, "Pic.jpg")
EndFunc
Das war nicht böse gemeint. Du kannst mein Script gern verwenden und etwas Eigenes daraus scripten, indem Du es anpasst oder etwas hinzufügst.
Nur wenn es so weitreichend ist, sollte man schon zwei verschiedene Threads dazu haben, damit bei Fragen klar ist, auf welches Programm sich diese beziehen.
Also nur zu, wenn Du das noch weiter ausbauen möchtest. ![]()
Hast Du das mit dem Geschwindigkeit runtersetzen (auf 10MBit/s) der Netzwerkkarte mal ausprobiert?
AutoBert, hast Du schon angefangen?
Ich habe nämlich auch mal damit begonnen. Ist allerdings erst im "Version 0.1"-Stadium. Ich bin mir über die Bedienung noch nicht ganz im Klaren.
Außerdem wollte ich auch ganze Verzeichnisse integrieren, sodass man auch Verzeichnisse nach Ablaufzeit löschen lassen kann.
Gibt aber auch noch das Problem der doppelten Einträge. Wenn eine Datei zweimal mit unterschiedlichen Daten zum löschen eingetragen wird oder wenn eine Datei und dann das übergeordnete Verzeichnis mit unterschiedlichen Daten eingetragen werden. Das muss man alles abfangen oder zumindest den Benutzer darauf hinweisen.
Bisher habe ich auch erstmal "nur" ein Drop-Icon.
Wie das mit dem (rekursiven) scannen der Verzeichnisse gemeint ist, ist mir noch nicht so ganz klar. Je nach Rekursionstiefe und Scan-Häufigkeit könnte sich das als ganz schön ressourcenhungrig erweisen. ![]()
Hey, da werden ganz neue Berufsfelder entwickelt: Registry-Cleaner oder Registrierungsdatei-Putzer-Reiniger
SCNR
So richtig verstehe ich nicht, wie jetzt eigentlich die Frage lautet.
Vor allem, was ist eine "volle Registry"? Windows passt die Größe doch dynamisch an.
Und unter WindowsXP spielt die Größe auch keine so große Rolle mehr, da die Registry nicht mehr komplett ins RAM geladen wird. Deswegen sind "Fehleinträge" auch ziemlich egal.
Wenn die Registry sehr groß und stark fragmentiert ist, dann könnte sich das negativ bemerkbar machen, aber sonst...
ja aber das sicherheitsschloss war eingeschaltet..
das heisst, dass wenn jemand meinen passwort ändern wollte, ich eine e-mail erhalten sollte..
Wenn jemand Deinen Account gehackt hat, dann könnte er doch auch diese Einstellungen ändern, oder werden Einstellungsänderungen auch an die alte EMail-Adresse geschickt?
Hat jetzt nichts mit AutoIt zu tun, aber schalte seine Netzwerkkarte einfach auf 10MBit/s.
@H2112: Wenn Du mein Script derart veränderst, gib dem Programm bitte einen neuen Namen und mach einen neuen Thread auf.
Ich halte nichts von einem Passwort bei meinem Programm und ich möchte mein Programm auch beenden können (Traymenü).
Zitat aus den AGBs:
Zitat§7) Bots und Scripte
Das Spiel darf nur mit herkömmlichen Browsern aufgerufen werden, ebenso ist der Aufruf von Browsern durch externe Programme nicht erlaubt. Bots oder andere Programme, die sich automatisch einloggen oder automatisch Spielaktionen auslösen sind untersagt.
[Thread closed]
Und wir werden jetzt nicht die Forenregeln aufweichen! Dann kommen nämlich alle an: "Ich will nur mal kurz das und das wissen..."
[Thread closed]
Naja, entweder hast Du nur das Passwort falsch geschrieben oder jemand hat Deinen Account gehackt und das Passwort geändert.