home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Powerdrive 1998 September
/
POWERDRIVE0998.ISO
/
VOLLVERS
/
ADRESS
/
SYSTEM.MOD
< prev
next >
Wrap
Text File
|
1997-03-14
|
8KB
|
229 lines
..Modul fⁿr Tabelle SYSTEM
..Datei: system.mod
..Beschreibung: globale prozeduren/makros fⁿr adres95
Procedure EndeBearbeiten(nDummy : Real)
.. setzt bearbeitungsmodus auf betrachten
?GetMode = 1/DatensΣtzeΣndern
?GetMode = 2/NeueDatensΣtzeEingeben
Endproc
Procedure SystemMeldung(sText, sHdg : String)
.. gibt eine meldung aus. diese m÷glichkeit dienst als ersatz fⁿr
.. die wintdb meldungen, da das wintdb-fenster zu klein ist, so das nicht
.. der komplette text dargestellt wird.
.. verwendet werden zwei felder (meldungsheading und -text) in der system tabelle.
.. wenn parameter "" dann keine Σnderung des inhalts. erm÷glicht das setzen des
.. textes befor systemmeldung aufgerufen wird, z.b. um vars zu setzen.
.. aufruf beispiel:
.. ExecMacro(System, SystemMeldung("Keinen Speicherplatz","Fehler") );
ReadRec(SYSTEM, 1);
?sHdg <> "" / $SYSTEM.MeldungsHeading := sHdg;
?sText <> "" / $SYSTEM.MeldungsText := sText;
WriteRec(SYSTEM,1);
ActivateForm("SYSTEM.Systemmeldung");
Endproc
PROCEDURE DruckerStatus
.. startet den druckmanager
.. unter win95 ist noch offen, wie es funktioniert
ReadRec(SYSTEM, 1);
IF $SYSTEM.Druckmanager <> ""
Execute($SYSTEM.Druckmanager);
ELSE
SystemMeldung("Kein Druckermanager in der Systemeinstellungen eingetragen.","Fehler") ;
END
Endproc
Procedure AdresseUebernehmen(nAbsender : Real)
.. adresse aus den felder korabsenderprivat und beruf ⁿbernehmen
.. parameter
.. nAbsender: 1 = Privat 2 = Beruf
DEF CRLF = Chr(13) + Chr(10)
Vardef nRecNr : Real;
ActivateForm("ADRESSEN.Adresverwaltung");
?nAbsender = 1/ShowRec(FindRec(ADRESSEN, $SYSTEM.KorAbsenderPrivat, "ADRESSEN.ID", 0));
?nAbsender = 2/ShowRec(FindRec(ADRESSEN, $SYSTEM.KorAbsenderBeruf, "ADRESSEN.ID", 0));
ViewRecs("Bitte suchen Sie den passenden Datensatz.");
ActivateForm("SYSTEM.Systemeinstellungen");
IF Message($ADRESSEN.Name + CRLF + $ADRESSEN.Name2 + CRLF + $ADRESSEN.Ort + CRLF + "uebernehmen?", "Adresⁿbernahme", 3) = 6
.. EndeBearbeiten(0);
ReadRec(SYSTEM, 1);
IF nAbsender = 1
?$ADRESSEN.Vorname <> ""/$SYSTEM.Name := $ADRESSEN.Name + "," + $ADRESSEN.Vorname
?$ADRESSEN.Vorname = ""/$SYSTEM.Name := $ADRESSEN.Name
$SYSTEM.KorAbsenderPrivat := $SYSTEM.Name
$SYSTEM.Tel := $ADRESSEN.Tel-Privat
$SYSTEM.Fax := $ADRESSEN.Fax-Privat
END
IF nAbsender = 2
$SYSTEM.Name := $ADRESSEN.Name
$SYSTEM.KorAbsenderBeruf := $SYSTEM.Name
$SYSTEM.Tel := $ADRESSEN.Tel-Geschaeft
$SYSTEM.Fax := $ADRESSEN.Fax-Geschaeft
END
$SYSTEM.Name2 := $ADRESSEN.Name2
$SYSTEM.Name3 := $ADRESSEN.Name3
$SYSTEM.Strasse := $ADRESSEN.Strasse
$SYSTEM.Plz := $ADRESSEN.Land + "-" + $ADRESSEN.Plz
$SYSTEM.Ort := $ADRESSEN.Ort
$SYSTEM.EMail := $ADRESSEN.E-Mail
WriteRec(SYSTEM, 1);
Refresh;
END
Endproc
..
..
..
Procedure LeseIniWert (sIniDatei, sSektion, sEintrag : String) : String
.. liest einen wert aus eine windows ini-datei und liefert diese zurⁿck.
.. ini-datei aufbau
.. [sektion]
.. eintrag=wert
.. Aufruf Beispiel:
.. ExecMacro(c:\daten\wintdb\utils\uti-tool, LeseIniWert("c:\windows\win,ini", "windows", "device"));
Vardef sWert : String; ..wert der zurⁿckgeliefert wird
Vardef nFH : REAL; .. filehandle
Vardef sLine : String; .. ini-zeile
Vardef sTempLine : String; .. tempzeile
Vardef nFound : Real; .. sektion gefunden?
..init
?sSektion[1] <> "["/sSektion := "[" + sSektion + "]";
sSektion := Upper(sSektion);
sEintrag := Upper(sEintrag);
nFound := 0;
.. inidatei vorhanden
IF IsFile(sIniDatei) = 0
Message(sIniDatei + " nicht gefunden.", "Fehler", 1);
Return
END
.. ÷ffne inidatei
IF nFH := Reset(sIniDatei) > 0
WHILE NOT Eot(nFH)
sLine := ReadLn(nFH)
sTempLine := sLine;
sLine := Upper(sLine);
?sLine = sSektion / nFound := 1
IF nFound = 1
IF sLine[1, Pos("=", sLine) - 1] = sEintrag
Close(nFH)
Return sTempLine[Pos("=", sLine) + 1, Length(sTempLine) - Pos("=", sLine) ]
End
END
End
ELSE
Message(sIniDatei + " nicht gefunden.", "Fehler", 1);
END
Close(nFH);
EndProc
..
..
..
Procedure SchreibeIniWert (sIniDatei, sSektion, sEintrag, sWert : String) : Real
.. schreibt einen wert aus eine windows ini-datei und liefert diese zurⁿck.
.. ini-datei aufbau
.. [sektion]
.. eintrag=wert
Vardef nFHin, nFHout : REAL; .. filehandle
Vardef sLine : String; .. ini-zeile
Vardef sTempLine : String; .. tempzeile
Vardef nFound : Real; .. sektion gefunden?
vardef nChanged : Real; .. wert geΣndert
Vardef sIniDateiNeu : String;
Vardef sOrgSektion, sOrgEintrag : String;
..init
?sSektion[1] <> "["/sSektion := "[" + sSektion + "]";
.. speichere originalwerte
sOrgSektion := sSektion; sOrgEintrag := sEintrag;
sSektion := Upper(sSektion); sEintrag := Upper(sEintrag);
nFound := 0;
nChanged := 0;
.. inidatei vorhanden?
IF IsFile(sIniDatei) = 0
Message(sIniDatei + " nicht gefunden.", "Fehler", 1);
Return 0
END
.. ÷ffne inidatei
IF nFHin := Reset(sIniDatei) > 0
.. erstelle neue inidatei
sIniDateiNeu := sIniDatei[1, pos(".", sIniDatei) - 1] + ".rob";
.. tempinidatei l÷schen
?IsFile(sIniDateiNeu) = 1/ DelFile(sIniDateiNeu);
IF nFHout := Rewrite(sIniDateiNeu) < 1
Message(sIniDatei + " kann nicht erstellt werden.", "Fehler", 1);
Return 0
END
.. inidatei lesen bis ende
WHILE NOT Eot(nFHin)
sLine := ReadLn(nFHin);
sTempLine := sLine; .. original zeile zwischenspeichern
sLine := Upper(sLine);
?sLine = sSektion / nFound := 1 .. sektion gefunden
.. noch nicht gefunden, schreibe originalzeile
?nFound = 0 / WriteLn(nFHout, sTempLine);
.. sektion gefunden, aber eintrag nicht, schreibe originalzeile
?nFound = 1 AND sLine[1, Pos("=", sLine) - 1] <> sEintrag / WriteLn(nFHout, sTempLine);
.. sektion und eintrag gefunden, wert Σndern
IF nFound = 1 AND sLine[1, Pos("=", sLine) - 1] = sEintrag
WriteLn(nFHout, sOrgEintrag + "=" + sWert);
nChanged := 1; nFound := 0;
END .. if
.. neue sektion erreicht?
IF nFound = 1 AND sLine[1] = "[" AND sLine <> sSektion
.. eintrag nicht gefunden, schreibe einen neuen
IF nChanged = 0
.. schreibe neuen eintrag
WriteLn(nFHout, sOrgEintrag + "=" + sWert);
nChanged := 1; nFound := 0;
.. nicht vergessen, die gelesene zeile zu schreiben
WriteLn(nFHout, sTempLine);
END .. if
END .. if
END .. while not eot
.. dateiende erreicht, wurde der wert geΣndert?
.. sektion gefunden, aber eintrag nicht (dh sektion ist am dateiende): eintrag neu
IF nFound = 1 AND nChanged = 0
WriteLn(nFHout, sOrgEintrag + "=" + sWert);
nChanged := 1;
END
.. sektion und eintrag nicht gefunden: neue sektion
IF nChanged = 0
WriteLn(nFHout, "");
WriteLn(nFHout, sOrgSektion);
WriteLn(nFHout, sOrgEintrag + "=" + sWert);
END .. if
ELSE
Message(sIniDatei + " nicht gefunden.", "Fehler", 1);
Return 0
END
Close(nFHin);
Close(nFHout);
..
.. dateien umbenennen
?IsFile(sIniDateiNeu) = 1/ DelFile(sIniDatei);
IF Rename(sIniDateiNeu, sIniDatei) = 0
Message("Kann Datei nicht umbennen.");
Return 1
ELSE
Return 0
END
EndProc