Beiträge von autoiter
-
-
Das hat nichts mit der Platte zu tun @Musashi.
Die Geschwindigkeit bricht (auf dem jeweiligen Niveau der Platte) bei kleinen Dateien unter Windows immer ein.
-
@Musashi und danach auch an alpines
VIELEN DANK FÜR DEN AUGENÖFFNER!



-
Hallo blondi@
Auch, wenn ich nicht gefragt war. Ich würde ausschließen, dass das schneller wäre. Die Geschwindigkeit hängt von der Platte ab und davon, ob die Daten auf der selben Partition bleiben oder nicht. Egal ob SSD oder alte HDD. Wenn du nur etwa in einen Unterordner verschiebst, wird nur der Verweis geändert und es geht super flott (weil nicht die Datei verschoben wird..).
-
-
Um es mal in meiner liebreizenden Art auszudrücken: "Wo ist der Bus mit den Leuten drin die DAS interessiert?"

Das war echt witzig. Aber ansonsten finde ich das auch sachlich hundertprozentig richtig.
Bei dem Startbeispiel, denke ich mir, ich sollte mir einfach jede Funktionsbeschreibung auch anschauen. Solange die UDF tut, was sie da verspricht, wenn ich mich an die Vorgaben halte, ist doch alles gut.
-
Hey BugFix
Das ist jetzt unklar.
Ich denke, der erste zitierte Satz bezieht sich auf Bitnuggers Beispiel und meine ersten Ausführungen (als wir sicherlich beide dachten, es geht auch bei dem Ini-nutzendem Programm um sein Skript..).
Ich meine die Benutzeranmeldung am Rechner selber.
Es scheint so zu sein, dass sich jeder Benutzer an- und abmeldet und nicht einfach mittendrin ein anderer Nutzer den PC bedient. Daher wird es wohl ungefähr so zu lösen sein, wie du es beschrieben hast (nur bin ich noch nicht sicher, ob der Benutzername in die Ini geschrieben werden soll, oder dem Benutzer zugeordnete Nummern..).
-
Meine Glückwünsche, Friedhelm.
-
Was ich nur nicht versteh ist, das Telefonprogramm schaut doch immer nur in die eine INI Datei, das kann ich auch nirgends ändern im Programm. Wenn ich nun jeden Nutzer rein schreibe, dann würde das Programm vermutlich den erste nehmen. Dann bin ich ja auch nicht weiter? oder verstehe ich das gerade falsch ?
Ja, da hast du schon recht Manuel.P Dein erster Post mit den Inis und Verweis auf andere Inis klang wenigstens für mich nach deinem eigenen Programm und ich dachte du hast dir einfach ein schlechtes Design überlegt.
-
Hallo blondi@
nimm lieber die Variante von Musashi. Ich war gestern nicht ganz auf der Höhe, wie mir scheint. Erst habe ich Copy mit ie geschrieben und dann meinen waghalsigen Code gepostet.

So kann man es eigentlich gar nicht nutzen. Ich habe ganz vergessen, dass erst einmal im Log geschaut werden muss, ob die jeweilige Datei auch erfolgreich kopiert wurde, bevor sie im Quellverzeichnis gelöscht wird..

-
Hallo Manuel.P
Bitnugger schlug vor, dass du statt mit verschiedenen Ini-Dateien arbeitest, einfach alle Daten in eine schreibst und dir dann den in deinem ersten Post geschilderten Klimbatsch mit Verweisen auf andere Ini-Dateien sparst.
Quasi die Formel:
Wert "C:\Users\%USERPROFILE%\AppData\Roaming\Telefonsoftware\tel" schreibe in Program.ini Zeile 10 und 11.Das Gegenstück zu IniRead ist IniWrite. Du kannst also einfach die Datei mit dem aktuellen User auslesen und in die Ini schreiben. Oder schreibst gar nichts in die Ini. Mir ist gar nicht klar, wozu du die Nummer in der ini stehen muss.. Das was du beschrieben hast, könnte ungefähr so aussehen:
CodeLocal $sUser = FileRead(@AppDataDir & "\Telefonsoftware\tel") IniWrite("Inifile.ini", "CallManager", "KeyCallAccept", $sUser) IniWrite("Inifile.ini", "CallManager", "LineControl", $sUser)Ich habe nicht verstanden, was das Anmelden ist, jedenfalls könntest du es da Auslesen und in die Ini schreiben.
-
Mal ohne Änderung direkt in der UDF.
Tausche mal alle Zeilen im Skript ab der Zeile mit _FileCopyEx.
CodeLocal $sLog = _FileCopyEx($aSourceFiles, $aDestDir, 1 + 2 + 16, 'Dateien kopieren...') ; hier erfolgt dann das kopieren If Not @error Then For $i = 0 To UBound($aSourceFiles) - 1 FileDelete($aSourceFiles[$i]) If @error Then Exit MsgBox($MB_ICONERROR, "Fehler-Abbruch", "Quelldaten Fehler beim Löschen. FileDelete-Fehler-Wert: " & @error, 3) Next Else ConsoleWrite($sLog & @CR) EndIf EndFunc ;==>_Copy -
Könnte man Oscar's Include Datei auch in ein _FileMoveEx ändern, wenn man nach dem schreiben der Zieldatei die Quelldatei löschen würde?
Der Unterschied zwischen Copie und Move ist ja eigentlich nur, dass die Datei im Anschluss gelöscht wird. Dahingehend könnte man Oscars UDF mit ganz wenigen Zeilen ändern. Ein FileDelete, ein neuer Parameter und die Anpassung vom Log und es müsste funktionieren. Was hält Oscar davon?
-
Hey, als Übung kannst du dir ja den Code ansehen und versuchen zu kommentieren, Der Code ist recht einfach. Wenn du das kommentieren kannst, hast du eigentlich schon programmieren gelernt.
-
Hallo Penner
Hmm, das stimmt so nicht.
Hast du mal die Wrapper-Anweisung #AutoIt3Wrapper_UseX64=Y ausprobiert?
-
Ich habe dir das etwas unsauber umgesetzt. Weil ich ein Fan von _FileCopyEx von Oscar bin habe ich die UDF genutzt. Wenn das für dich ein No-Go ist, dann kann man das auch einfach mit der Funktion FileCopy machen.
Damit der Code ausführbar ist, musst du in das Verzeichnis, in dem das Skript liegt, auch die _FileCopyEx.au3 ablegen. Du kannst sie hier laden: _FileCopyEx
C
Alles anzeigen#include <File.au3> #include <MsgBoxConstants.au3> #include "_FileCopyEx.au3" _Copy() Func _Copy() Local $sSourceFilePath = FileSelectFolder("Wähle Quellpfad", @ScriptDir) If @error Then Exit MsgBox($MB_ICONERROR, "Fehler-Abbruch", "Kein Quellordner ausgewählt", 3) Local $sDestFilePath = $sSourceFilePath & " AUSWAHL" Local $aArraySourceFilePath = _FileListToArrayRec($sSourceFilePath, "*", $FLTAR_FILES, $FLTAR_NORECUR, $FLTAR_SORT, $FLTAR_NOPATH) If @error Then Exit MsgBox($MB_ICONERROR, "Fehler-Abbruch", "Quelldaten. _FileListToArrayRec Fehler-Wert: " & @error, 3) Local $aArrayDestFilePath = _FileListToArrayRec($sDestFilePath, "*", $FLTAR_FILES, $FLTAR_NORECUR, $FLTAR_SORT, $FLTAR_NOPATH) If @error Then Exit MsgBox($MB_ICONERROR, "Fehler-Abbruch", "Zieldaten. _FileListToArrayRec Fehler-Wert: " & @error, 3) Local $aSourceFiles[$aArrayDestFilePath[0]], $aDestDir[$aArrayDestFilePath[0]], $iCount = 0 For $i = 1 To $aArraySourceFilePath[0] If StringRight($aArraySourceFilePath[$i], 3) <> "cr2" Then ContinueLoop For $ii = 1 To $aArrayDestFilePath[0] If StringTrimRight($aArraySourceFilePath[$i], 3) == StringTrimRight($aArrayDestFilePath[$ii], 3) Then $aSourceFiles[$iCount] = $sSourceFilePath & "\" & $aArraySourceFilePath[$i] $aDestDir[$iCount] = $sDestFilePath $iCount += 1 EndIf Next Next If $iCount = 0 Then Exit MsgBox($MB_ICONERROR, "Fehler-Abbruch", "Keine Treffer für Kopiervorgang gefunden", 3) ReDim $aSourceFiles[$iCount] ReDim $aDestDir[$iCount] Local $sLog = _FileCopyEx($aSourceFiles, $aDestDir, 1 + 2 + 16, 'Dateien kopieren...') ; hier erfolgt dann das kopieren ConsoleWrite($sLog & @CR) EndFunc ;==>_Copy -
Das heißt, du willst den Quellpfad immer auswählen können. Ist der Zielpfad dann auch immer Zielpfad + AUSWAHL, oder willst du den auch jedes mal auswählen?
-
Hallo blondi@
sorry, ich habe deinen Post gelesen, verstehe aber nicht, was du genau willst. Das Kopieren funktioniert für dich bereits. Nun möchtest du aber eine GUI. Worum geht's? Was soll die denn darstellen?
-
Hallo hipfzwirgel
Du kannst dir zusätzlich auch noch die Hilfe zu #pragma ansehen.
-
Hallo Code-Jack
weil du mich erwähnt hast, möchte ich auch antworten, obwohl ich damit nichts zum Thread beitrage.
Ich teile nicht die Meinung von BugFix. Win XP (auch mit SP3) ist für mich einfach nicht auf meinem Hauptrechner denkbar. Aus meiner Sicht ist einfach nicht so, dass MS seither nur dumme Ideen hatte.
Aber sicher gibt es Bedingungen unter denen der Einsatz eines so alten Systems begründet ist. Solche Bedingungen hast du geschildert. Damit ist es für mich hinreichend begründet.
-
Haha, danke für den Test @Musashi

Wechseln wird deshalb wohl niemand sein Betriebssystem. Editor-Kritik aus dieser Richtung sollte aber auch nicht ernst genommen werden.