SoftMaker.de

Deutschsprachiges Diskussionsforum
Aktuelle Zeit: 19.06.2013 16:43:56

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 13.11.2010 16:38:17 
Offline

Registriert: 31.05.2004 22:07:48
Beiträge: 72
Wohnort: Hamburg
Dewes hatte im Forum Allgemein ein Skript eingestellt, das Sicherungsdateien erzeugen soll, bei denen die ursprüngliche Dateiendung erhalten bleibt und statt mit Punkt durch einen Unterstrich getrennt wird, dann folgt .BAK

Bei diesem mir sehr sympatischen Skript ist ihm glaube ich ein Fehler unterlaufen. Es wird nach der Ursprungsendung und dem Unterstrich unbeabsichtigt wieder ein Punkt eingeführt, der wegen der damit verbundenen doppelten Dateiendung eigentlich vermieden werden sollte.

Zu meiner eigenen Übung habe ich das Skript mal kommentiert, um den Fehler aufzuzeigen.

Wenn ich mich als Anfänger nun blamiert haben sollte ist es auch nicht so schlimm.

Carsten
Dateianhang:
backup_kommentiert.tmd [10.69 KiB]
34-mal heruntergeladen


Nach oben
 Profil  
 
BeitragVerfasst: 13.11.2010 17:51:04 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 990
schön, dass mal wieder ein Beitrasg in diesem Forum ist. Du hast recht, aber nur bei einer vierstelligen Dateiendung taucht der Punkt auf.

Habe heute keine Zeit mehr, werde mir das morgen mal in Ruhe ansehen.


Dateianhänge:
t.jpg
t.jpg [ 18.37 KiB | 1053-mal betrachtet ]
Nach oben
 Profil  
 
BeitragVerfasst: 13.11.2010 18:20:28 
Offline

Registriert: 31.05.2004 22:07:48
Beiträge: 72
Wohnort: Hamburg
Dewes hat geschrieben:


...nur bei einer vierstelligen Dateiendung taucht der Punkt auf.
...


Nö, bei mir auch bei "stinknormalen" 3stelligen Endungen.

Dateianhang:
ttt.jpg
ttt.jpg [ 5.9 KiB | 1048-mal betrachtet ]


Nach oben
 Profil  
 
BeitragVerfasst: 13.11.2010 18:39:48 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 990
Hat mir doch keine Ruhe gelassen und ich habe es mir doch noch angesehen.

Bei der Zeile

Code:
dname = Left(tm.ActiveDocument.name,len (tm.ActiveDocument.name)-z) &  "_" &  Right(tm.ActiveDocument.name, z-1) & ".bak"
habe ich beim zweiten z noch ein "-1" eingefügt. Logisch, der nimmt sonst die Dateiendung incl. Punkt.


Nach oben
 Profil  
 
BeitragVerfasst: 13.11.2010 18:50:11 
Offline

Registriert: 31.05.2004 22:07:48
Beiträge: 72
Wohnort: Hamburg
Dewes hat geschrieben:
Hat mir doch keine Ruhe gelassen und ich habe es mir doch noch angesehen.

Bei der Zeile

Code:
dname = Left(tm.ActiveDocument.name,len (tm.ActiveDocument.name)-z) &  "_" &  Right(tm.ActiveDocument.name, z-1) & ".bak"
habe ich beim zweiten z noch ein "-1" eingefügt. Logisch, der nimmt sonst die Dateiendung incl. Punkt.


Du warst zu schnell; gerade wollte ich es auch mitteilen und en Ausdruck, dass es stimmt.
Dateianhang:
tttt.jpg
tttt.jpg [ 10.62 KiB | 1044-mal betrachtet ]


Nach dieser Erfahrung würde ich mir ja nun folgendes Projekt vorstellen:

1. Stufe
Anlage von Sicherungsordner (zB "BAKDAT") unterhalb von SMO,
Anlage von Unterordnern TMD, PDF, DOC, usw
Durch das Skript angestoßene Sicherungen in die Unterordner

2. Stufe
(Fehlender Ordner und) fehlende Unterordner werden vom Skript angelegt (***???***)
Sicherungsdateien werden durchnummeriert zB von 0 - 9 und wieder von vorn (***???***)

Gibts kleine Hinweise für mich, wo ich etwas dazu finde wie Ordner angelegt werden?
Findet man vielleicht irgendwo schon eine Routine zum Durchnummerieren?


Nach oben
 Profil  
 
BeitragVerfasst: 13.11.2010 20:10:55 
Offline

Registriert: 01.02.2010 19:38:04
Beiträge: 76
@Carsten Goellnitz

Zitat:
Gibts kleine Hinweise für mich, wo ich etwas dazu finde wie Ordner angelegt werden?


MKDIR heißt der Befehl, um ein Verzeichnis anzulegen.


Nach oben
 Profil  
 
BeitragVerfasst: 13.11.2010 23:21:28 
Offline

Registriert: 31.05.2004 22:07:48
Beiträge: 72
Wohnort: Hamburg
Eierlein hat geschrieben:
@Carsten Goellnitz

Zitat:
Gibts kleine Hinweise für mich, wo ich etwas dazu finde wie Ordner angelegt werden?


MKDIR heißt der Befehl, um ein Verzeichnis anzulegen.


Danke, nun muss ich mich aber mal kräftig selbst auslachen... ich kenne doch eigentlich noch ein wenig Urbasic und würde am liebsten noch DOS zurück haben, wie konnte ich mkdir nur vergessen. Ist eben schon sehr lange her, dass ich mich mal mit "Programmierung" beschäftigt habe.

Carsten


Nach oben
 Profil  
 
BeitragVerfasst: 14.11.2010 11:33:19 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 990
Du musst bei einem solchen Projekt BasicMaker kombinieren mit z.B. WSH, der Windows eigenen Scriptsprache, habe ich auch schon im vorherigen Script getan. Hilfe findest für BasicMaker in Hilfe und Handbuch und für WSH im Internet.

Du musst die Punkte in deiner Beschreibung umstellen, zuerst musst du ja prüfen ob ein Ordner existiert, ehe du was sichern kannst.

Ich habe dir mal den Anfang des Scriptes geschrieben als Motivation, das weitere kannst du dann selbst versuchen und bei Schwierigekiten kannst du dich wieder melden.

Code:
Dim tm as Object
Set tm = CreateObject("TextMaker.Application")
tm.Application.Visible = True
tm.Activate

dim Wsh as object
dim Uname, Pfad, ordner as string

' Benutzernamen und Pfad ermitteln
set Wsh = CreateObject("WScript.Shell")
UName = Wsh.ExpandEnvironmentStrings("%USERNAME%")
pfad = "C:\Users\" & UName & "\Documents\SoftMaker\"

chdir pfad

'Ordner- Existenzprüfung
Ordner = Pfad &"backup"
set fs = CreateObject("Scripting.FileSystemObject")

if not fs.folderexists(ordner) then
mkdir ordner
end if


Nach oben
 Profil  
 
BeitragVerfasst: 14.11.2010 17:44:08 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 990
Ergänzung

1. PDF-Format

Das PDF-Format gehört nicht zu den Formaten "Datei speichern unter ...", müsste also anders behandelt werden.

2. Durchnummerieren

Das ist nicht so einfach. Deine Idee, wenn 9 erreicht ist, wieder vorne anzufangen, halte ich nicht für gut, das gibt Chaos, man weiß nie so richtig, welche ist die jüngste Datei. Ich würde vorschlagen,wenn 9 erreicht ist, die 0-Datei löschen und die restlichen von 0-8 renamen und die neueste Datei ist dann wieder 9.

Für die Verarbeitung sehe ich nach einer ersten Überlegung folgende Möglichkeiten:

1. Möglichkeit

Für jede Datei im Verzeichnis eine eigene ini-Datei mit der letzten Ziffer. Einfach zu programmieren, aber ansonsten nicht zu empfehlen. Das Verzeichnis wird aufgebläht und man vergisst man beim Löschen der Datei die ini-Datei.

2. Möglichkeit

Man macht eine ini-Datei für alle Dateien. Der Nachteil ist, dass man die Datei Zeile für Zeile durchsuchen muss, bei einer großen Anzahl von Dateien ein erheblicher Zeitaufwand es besteht die Gefahr, dass beim Löschen einer Datei der Eintrag in der ini-Datei vergessen wird.

3. Möglichkeit

Mit einer WSH-Routine liest man die Dateien in ein Array ein und kann damit feststellen, was die höchste Ziffer ist. Geht relativ schnell ist aber aufwendig zu programmieren.

4. Möglichkeit

Man macht einen Existenztest und stellt damit die letzte vorhandene Datei fest. Geht relativ schnell und ist einfach zu programmieren.

Vielleicht gibt es noch andere Möglichkeiten, an die ich z.Zt. nicht denke.


Nach oben
 Profil  
 
BeitragVerfasst: 14.11.2010 23:02:35 
Offline

Registriert: 31.05.2004 22:07:48
Beiträge: 72
Wohnort: Hamburg
Dewes hat geschrieben:
...
Du musst die Punkte in deiner Beschreibung umstellen, zuerst musst du ja prüfen ob ein Ordner existiert, ehe du was sichern kannst.



Erstens: Dewes ist ein Engel, aber das gehört nicht hierher.
Zweitens: Du hast meine Reihenfolge, glaube ich, missverstanden (macht aber nichts): ich wollte erst ein einfaches Programm schreiben, bei dem ich voraussetze, dass die entsprechenden Ordner und Unterordner existieren. Ich wollte sie händisch zuvor anlegen. Da das Skript ja nur für mich ist, ist das ja auch nicht so schlimm. Dann wollte ich (vielleicht) das Programm so erweitern, dass der Sicherungsordner und insbesondere die Unterordner automatisch erzeugt werden; denn selbst ich weiß für meine eigenen Zwecke ja nicht, mit welchen Formaten ich demnächst arbeiten werde. - Ich glaube, ich hatte geahnt, dass ich für diese Erweiterung noch sehr viel mehr lernen muss, wie Du sagst, auch noch WSH.
Drittens: mit dieser Motivation und Einstiegshilfe bleibt mir bald nichts anderes übrig, als tatsächlich mit BasicMaker anzufangen.
Viertens: Meine Idee hat nichts mehr mit dem Ursprungsposting zu tun, ich denke für mich eher an eine Speicherung von verschiedenen Versionen eines Textes (mit Tabellen und Datenbanken befasse ich mich weniger). Deshalb werde ich mich doch intensiver mit der Durchnummerierung befassen. Aber das erscheint mir weniger ein Problem der Programmiersprache zu sein als eines der Suche nach einem geeigneten Algorithmus. Vielen Dank auch für Deine Hinweise dazu.

Carsten


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de