START_PC.PRG V1.04


Dieses Programm entstand nachdem mir Pure C ein File zerschossen hatte, aber auch im Normalfall ist es oft gut viele Backups zu haben.
 

Beschreibung des Programms,


Statt Pure C direkt zu starten, wird dieses Programm gestartet. Es prüft nach welche Quellfiles nach dem letzten Backup geändert wurden und sichert sie. Danach wird Pure C aufgerufen. Zum Start von PC gibt es mehrere Möglichkeiten, u.a. indem man ihm ein CFG-File übergibt. Dies hat den Vorteil, daß man wieder genau dort ist, wo man war als man das letzte Mal an diesem Projekt gearbeitet hat, auch wenn man PC in der Zwischenzeit für andere Zwecke benutzt hat. Da wohl auch nur für solche Projekte ein automatisches Backup-System sinnvoll ist, habe ich diese Methode ausgebaut.
 

Installation


Das Programm muß im gleichen Ordner wie PC.PRG sein. Der Einfachheit halber sollte es als Anwendung auf *.cfg angemeldet werden. Ein Doppelklick auf ein CFG ruft dann START_PC auf, dieses lädt die PRJ Datei (steht im CFG) und prüft die markierten Files (s.u.). Ist ein File neuer als das letzte Backup, so wird es gesichert. Dazu muß ein Zielordner definiert werden, entweder über eine Environment-Variable oder im PRJ File. Die Env heißt: PCBCK_DIR, ist diese nicht definiert, so wird das PRJ nach 'PCBCK_DIR=' abgesucht. Also z.B.

; PCBCK_DIR=i:\backup\pc
Das ';' ist nötig, damit PC die Zeile ignoriert.
 

Speziell für ASH-Emailer Benutzer


Da man für den E-mailer Iconnect auf iconfset.cfg anmelden soll, gibt es hier Probleme. Es muß dann auf

*.cfg&!iconfset.cfg
angemeldet werden.
 

Update von 1.03 oder älter


Eine spezielle Vorgehensweise beim Update ist nicht nötig, da keine Konfigurationsfiles o.ä. existieren. Allerdings ist es sinnvoll, von allen Projekten ein vollständiges Backup zu machen, da sonst *.h, *.rsc,... Files erst dann gesichert werden, wenn sie sich das nächste Mal ändern.
 

Benutzung


Es gibt 2 Backupmethoden: entweder gepackt oder ungepackt.

  • Gepackt: es muß entweder die Env PACKER geben oder eine entsprechende Zeile im PRJ, also z.B.:
  • ; PACKER=g:\packer\lha\lharcger.ttp
    Dann wird bei jedem Backup ein Verzeichnis BCK_9999.lzh erzeugt, dabei ist 9999 eine laufende Nummer, und lzh die Endung des benutzten Packers, kann also auch arc oder lha,... sein.
  • Ungepackt: es wird ein Ordner BCK_9999 angelegt und alle Files dahinein kopiert. Da hier ohne Pfade kopiert wird, müssen alle Files unterschiedliche Namen haben.
  • In beiden Fällen wird außerdem ein Logfile geführt. In jeder Zeile des PRJ, die den Namen eines Files enthält, das ggf. gesichert werden soll, muß '#bck' stehen. Ist kein Pfad angegeben, so wird der des PRJ verwendet. Wird beim Start eine Umschalttaste gedrückt ( Kbshift(-1)!=0 ), wird ein vollständiges Backup gemacht, also unabhängig, ob das entsprechende File seit dem letzten Backup geändert wurde.

    Neu in der 1.04


    Außerdem wird zu jedem PRJ-File das gleichnamige PDB-File geladen. Darin ist eine Liste aller Quellfiles von denen das Programm abhängt. Da hier aber auch teilweise veraltete Information drin ist, wollte ich mich nicht nur auf dieses File stützen und bevorzuge die Methode mit dem PRJ-File (s.o.). Allerdings war es ohne riesigen Aufwand nicht möglich, aus dem PRJ-File die *.H Files zu ermitteln. Und genau dafür benutze ich das PDB File jetzt. Genau gesagt funktioniert es so: alle Files, die im PDB stehen, werden ggf. gesichert, es sei denn sie haben eine der folgenden Endungen: *.c,*.C,*.s,*.S Für diese bleibt einzig und allein das PRJ ausschlaggebend. Nachteil:

  • Ein *.H wird auch dann gesichert, wenn es nur in einem *.C vorkommt, das selber nicht gesichert wird
  • ggf. stehen im PDB noch Files, die in einer alten Version vorkamen, aber in der aktuellen nicht mehr.
  • In beiden Fällen ist es nicht ganz so schlimm, da diese Files ja meist kurz sind und sich selten ändern. Im 2. Fall ist es sinnvoll, das PDB zu löschen und einmal 'Make all' in PC auszuführen. Zu jedem *.h wird ein passendes *.RSC gesucht und ggf. auch gesichert.
     

    Beispiel


    Zur Veranschaulichung hier ein PRJ von mir:

    ;>>>>>>> Viewer.PRJ <<<<<<<<
    ; PACKER=g:\packer\lha\lharcger.ttp
    Viewer.prg ; Name of executable program is topmost window
    .C [ -Y ]
    .L [ -L -Y ]
    .S [ -Y ]
    = ; List of modules follows...

    PCSTART.O ; startup Code
    viewer.c ; c-Datei #bck
    d:\soft_ent.w\biblioth.ek\gr_file ;#bck
    d:\soft_ent.w\biblioth.ek\gr_fkt ;#bck
    d:\soft_ent.w\biblioth.ek\gr_fkt_s.s ;#bck
    d:\soft_ent.w\biblioth.ek\easyfsel ;#bck
    d:\soft_ent.w\biblioth.ek\easyfs_s.s ;#bck
    d:\soft_ent.w\biblioth.ek\fenster ;#bck
    d:\soft_ent.w\biblioth.ek\fensters.s ;#bck
    d:\soft_ent.w\biblioth.ek\gdps ;#bck
    d:\soft_ent.w\biblioth.ek\my_err ;#bck
    d:\soft_ent.w\biblioth.ek\my_mem ;#bck
    d:\soft_ent.w\biblioth.ek\bezier ;#bck
    d:\soft_ent.w\biblioth.ek\bezier_s.s ;#bck
    d:\soft_ent.w\biblioth.ek\submenue\submenu ;#bck
    ;PCFLTLIB.LIB ; floating point library
    PC881LIB.LIB ; floating point library
    PCSTDLIB.LIB ; standard library
    PCLNALIB.LIB ; LINEA library
    PCEXTLIB.LIB ; extended library
    PCTOSLIB.LIB ; TOS library
    PCGEMLIB.LIB ; AES and VDI library
    ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


    außerdem sind in meinem MAGX.INF die folgenden Zeilen enthalten:

    #_ENV PCBCK_DIR=E:\BACKUP\PC\
    #_ENV PACKER=G:\PACKER\LHA\LHARCGER.TTP
    Die beiden Definitionen (PACKER und PCBCK_DIR) können natürlich auch beide oder nur eins im PRJ sein.
     

    Einschränkungen


    Dies ist erst die Version 1.04. Außerdem ist es kein Programm für DummUser, also wenn ich PACKER suche, ignoriere ich Packer, schließlich ist es für C- Programmierer. Die Suchpfade sind beschränkt (s.o.). Es wird nichts gelöscht, das muß man selber machen.
     

    Rechtliches


    Das Programm ist Fairware, d.h. es kann beliebig benutzt und weitergegeben werden. Es kann auch in PD Sammlungen aufgenommen werden oder kommerziellen Programmen beigefügt werden. Wer es regelmäßig benutzt sollte sich allerdings überlegen, ob es ihm nicht ein paar Mark wert ist. Er bekommt dann auch Bescheid, wenn es eine neue Version gibt (per Email).

    PureC ist ein Warenzeichen von Application Systems Heidelberg
     

    Zurück zu meiner Homepage

     

    Autor

     
    Dimitri Junker
    Adenauerallee 30
    52066 Aachen
    BRD
    E-Mail
    Maus: Dimitri Junker @ AC2
    Internet:                             Dimitri_Junker@AC2.Maus.De
    oder für lange Mails(>16k): Dimitri.Junker@EPost.De