Ich nutze gerne die UDF von Oscar : _FileCopyEx
Beiträge von Musashi
-
-
=> läuft auch eingesetzt in mein Programm genau richtig - danke dir!
-
Kann ich, wenn ich das als richtiges Datum in die DB lege, via Query danach sortieren?
Ja !
Alternativ könntest Du aus dem "echten" Datum einen (Unix)-Timestamp machen und den als zusätzliches Feld in die Tabelle eintragen (nur für die SQL Abfrage) -> SELECT ... ORDER BY timestamp.
Sofern Du die DB-Tabelle jedesmal neu anlegst und die Daten in der vorhandenen Sortierung in die DB einträgst, dann sollte eigentlich bereits die ID (SELECT x,y FROM tabelle ORDER BY id) ausreichen.
-
Hier nochmal ein Mini-Datensatz mit meinem verwendeten Datums-Format :
Kurze Frage zum Verständnis :
Speicherst Du [Datum Uhrzeit] wirklich im Format "TT.MM. hh:mm" , d.h. ohne Jahr und Sekunden ?
-
Ich würde das eher in einer eigenen mini-sub Gui umsetzen, ist wesentlich einfacher und du hast volle Kontrolle.
Sehe ich auch so.
Melba23 hat diesbzgl. bereits eine umfangreiche Lösung präsentiert, siehe :
Extended Message Box - New Version: 16 Feb 24Are you annoyed by the limitations of the standard Windows message dialog created by MsgBox? Would you like to have coloured backgrounds and text? To choose…www.autoitscript.com -
Nein, Deepl ist komplett kostenlos in der Webvariante ...
Stimmt !
Wenn man z.B. an Diskussionen im englischen Forum teilnehmen möchte ist Deepl, für Menschen mit 'begrenzten' Sprachkenntnissen, eine große Hilfe.
Bei umfangreichen Texten (wie ggf. einem Tutorial) greift allerdings folgende Einschränkung :
kostenlose Version des DeepL Übersetzers : übersetzt max. 1500 Zeichen
(vor geraumer Zeit waren es übrigens noch 5000 Zeichen)
Hier muss man also 'intelligent' stückeln
-
Nachtrag :
1. zu #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
Au3Check läuft vorher durch und stoppt bei Warnungen, der Compiler macht das nicht.
2. zu den Parametern von #AutoIt3Wrapper_AU3Check_Parameters siehe : https://www.autoitscript.com/autoit3/scite/…3/au3check.html
Deutsch :
Code-q : Still, nur Fehler/Warnungen ausgeben -d : Wie Opt("MustDeclareVars", 1) -w 1: Bereits eingebundene Datei {ein) -w 2: Fehlendes #comments-end bzw. #ce {ein) -w 3: Bereits deklarierte Variable {aus} -w 4: Lokale Variablen werden in einem globalen Bereich verwende (aus) -w 5: Lokale Variablen sind deklariert, werden aber nicht verwendet (aus) -w 6: Warnung falls Dim verwendet wird (aus) -w 7: Warnung falls Const oder Ausdrücke an ByRef Parameter übergeben werden (ein)
-
schaue ich mir den Abschnitt nun an:
Local $__PIC_INFO = GUICtrlCreateIcon($_dll,$__icoNumber, 80, 5, 80, 80)
Die Variable ist doch in Verwendung?
Nein, ist sie nicht.
Mit Local $__PIC_INFO wird die Variable deklariert (und hier auch gleich ein Wert zugewiesen).
Im Verlauf der Funktion wird diese Variable aber offenbar nicht verwendet (Deklaration und Wertzuweisung stellen in diesem Fall keine Verwendung dar). Für die Warnung verantwortlich ist der Parameter -w 5 .
Beispiel :
Code
Alles anzeigen#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7 Example() Func Example() Local $sString1 = "Dies ist der erste String" Local $sString2 = "Dies ist der zweite String" ; 1. hier wird nur der erste String verwendet : MsgBox(BitOR(4096, 64), "Anzeige 1 : ", $sString1) ; 2. hier werden beide Strings verwendet : ;MsgBox(BitOR(4096, 64), "Anzeige 2 : ", $sString1 & @CRLF & $sString2) EndFunc ;==>Example
Wenn Du bei der MessageBox in 2. mal die Kommentierung ; entfernst, dann wird $sString2 auch verwendet und die Warnung erscheint nicht.
-
Danach hatten wir ein Schreibprogramm das unter MS-Dos lief. Leider weiß ich nicht mehr wie
das hieß. Gibt es soetwas heute eigentlich noch bzw. bekommt man das von früher noch irgendwo
her und könnte es sogar noch auf heutigen PCs laufen?Ich habe damals (bis in die 90er Jahre) lange Zeit das Programm ConText Pro (aus dem DMV-Verlag) verwendet. Vielleicht meinst Du ja das.
Links :
Dos Schreibprogramm ContextHi wer kennt noch das Schreinprogramm Context ? Es läuft unter Dos erschien im Dmv Verlag. Stelle nachher noch screenshots ein.Läuft einwandfrei unter xdosemu…www.computerbase.deSofern man das Programm noch bekommt, müsste es innerhalb der Software DosBox eigentlich noch laufen. Problematisch wird ggf. die Druckeransteuerung.
-
Hier mal ein Beispiel (wie von SOLVE-SMART beschrieben)
AutoIt
Alles anzeigenLocal $sFilePath = @ScriptDir & "\Ini_Find.ini" ; Pfad zur Ini-Datei Local $sSearchVal = "0xC39C07ECD016536F9C49E1" ; gesuchte Persnr Local $bSecFound = False, $sSecName = "" Local $aSecArray = IniReadSectionNames($sFilePath) If Not @error Then For $i = 1 To $aSecArray[0] If IniRead($sFilePath, $aSecArray[$i], "Persnr", "") = $sSearchVal Then $bSecFound = True $sSecName = $aSecArray[$i] EndIf Next EndIf If $bSecFound Then MsgBox(BitOR(4096, 64), "Ergebnis", "Sektion gefunden : " & $sSecName & @CRLF) Else MsgBox(BitOR(4096, 16), "Ergebnis", "Sektion nicht gefunden " & @CRLF) EndIf
Ini-Datei (als Beispiel) :
-
Mein Gott, was habe ich da Geld ausgegeben....Speeddos Plus, Dolphin-Dos, mehrfach Umschaltplatine (selbst geätzt), 4Mhz-Karte von Rossmöller...Video Digitalisierer Marke Eigenbau,
Trotz allem haben die Zeiten viel Spaß gemacht - man war irgendwie dichter dran am Geschehen .
hunderte Floppydisks....
Ja, die Dinger waren, gerade in der Anfangsphase, echt teuer (5 DM/Stk. für 170 KB Speicherkapazität). Später gab es sie günstiger im 10er Pack. Gold wert war auch der Tipp, mit einem Papierlocher ein halbes Loch auf der anderen Seite einzustanzen. Dann konnte man sie doppelseitig verwenden.
Zur Info für Leser, die noch nicht den 'alter Sack' Status erreicht haben :
Die Kerbe (rot markiert) diente als Schreibschutz. Mit einem kleinen Klebestreifen (lag bei) konnte man sie schließen und somit eine Lichtschranke unterbrechen (-> Schreibschutz an).
-
Jahre später der Aufstieg: C64 mit Floppydisk....
... und dann noch die selbst gemachte Aufrüstung, bei der man mit einem Heißdrahtschneider einen Schlitz in das Gehäuse der Floppy gebrannt hat, um ein Parallelkabel 'reinzupulen .
-
also so wie ich das sehe liegt das ganze an dem Bereich :
"cmd /c IF @isdir == TRUE echo @path >> test.txt"
Es mag durchaus sein, dass dieser Teil auch zu einem Problem führt.
Trotzdem ist die Anordnung von einfachen und doppelten Hochkommata in deiner Variable $run nicht korrekt, siehe :
CodeLocal $packuppath = 'c:\zielverzeichnis' ; *** nur zum Test, damit $packuppath einen Wert hat Local $run='cd " & $packuppath & "FORFILES * /D -5 /C "cmd /c IF @isdir == TRUE echo @path >> test.txt"' ConsoleWrite($run & @CRLF)
Die Ausgabe mittels ConsoleWrite ergibt :
cd " & $packuppath & "FORFILES * /D -5 /C "cmd /c IF @isdir == TRUE echo @path >> test.txt"
Wie Du siehst, wird hier nicht der Wert von $packuppath eingefügt, sondern der Variablenname als Text.
-
habe ich probiert, funktioniert leider nicht.
Ein Problem bei deiner Besetzung der Variable $run bestand darin, dass die einfachen und doppelten Hochkommata schon zu Beginn falsch gesetzt waren (den Rest habe ich, offen gesagt nicht geprüft)
Bei :
$run='cd " & $packuppath & "FORFILES * /D -5 /C "cmd /c IF @isdir == TRUE echo @path >> test.txt"'
wird nicht der Wert von $packuppath eingefügt, sondern nur der Variablenname als Text. Du kannst ja mal ein ConsoleWrite($run & @CRLF) dahintersetzen.
Diesen Teil habe ich geändert.
Ein anderer, zugegebenermaßen etwas rustikaler Ansatz :
Vorgabe : Du möchtest jede Stunde eine Verzeichnisstruktur in einen, von der Stunde der Ausführung abhängigen Backupordner kopieren. Backupordner die älter als 24 Stunden sind, sollen gelöscht werden.
Das ist im Prinzip eine 24 Stunden Rotation.
- Prüfe im Skript das Makro @HOUR (lt. Hilfe : Stundenwert der Uhrzeit im 24-Stunden-Format. Wertebereich: 00 bis 23)
- Prüfe ob ein Ordner, z.B. ..\backup00 oder ..\backup23 (d.h. ..\backup & @HOUR) bereits existiert - falls nicht anlegen.
- Existiert der jeweilige (Stunden-)Ordner bereits und ist nicht leer, dann den Inhalt löschen und anschließend das neue Backup dort hineinkopieren.
So kannst Du Dir das Löschen von Ordnern, die älter als 24 sind, sparen. Ein Backup zu einer betreffenden Stunde der Vortages wird durch ein aktuelles ersetzt.
-
Versuche :
Local $run='cd "' & $packuppath & '" FORFILES * /D -5 /C "cmd /c IF @isdir == TRUE echo @path >> test.txt"'
-
So das der NewString dann z. B. so aussieht:
vorher: 123456789012345678901234567890123456789012345678901234567890
nachher: j234567890a2345678901234567890t234567890 j234567890t234567890Wäre das machbar?
Eine Möglichkeit wäre :
Code
Alles anzeigenLocal $sString, $aString, $sStringNew Local $aArr_1[4] = ["1", "a", "j", "t"] ; Ersetzungszeichen für "1" $sString = "123456789012345678901234567890123456789012345678901234567890" $aString = StringSplit($sString, "") For $i = 1 To $aString[0] If $aString[$i] = "1" Then $aString[$i] = $aArr_1[Random(0, 3, 1)] $sStringNew &= $aString[$i] Next ; nur zur Info : ConsoleWrite("Vorher = " & $sString & @CRLF) ConsoleWrite("Nachher = " & $sStringNew & @CRLF)
-
Wie löse ich dieses Problem ????
Hier ein Ansatz mit StringReplace :
-
... Aber es ist ein Teufelskreis, der schwer zu durchbrechen ist.
Dein Beitrag beschreibt zweifellos tragische Lebenssituationen. Er passt halt nur nicht in diesen Projekte-Thread, es sei denn, Du möchtest das Projekt fortsetzen. Selbst dann wäre es besser einen neuen Thread zu starten als einen seit Jahren brach liegenden wiederzubeleben.
Raupi : Falls Du es für sinnvoll erachtest, kann dieser Beitrag ggf. in den Bereich Talk verschoben werden.
-
Ich wünsche allen Userinnen und Usern ein Frohes Weihnachtsfest und einen Guten Rutsch in das Jahr 2024 . Mögen eure Hoffnungen und wenigstens 50% der Vorsätze wahr werden .
Gruß, Musashi
-
Die UNC Abschalten ist aber keine Lösung, sondern nur die Sicherheit schwächen....
Ich beide meint sicher die UAC (User Account Control) , nicht die UNC (Uniform Naming Convention)