Zurück zur Homepage

Beschreibungen der Prozeduren





CheckDBF.inc     (Version 1.1 vom 15.05.2010)

Wird in Profan eine DBF-Datei benutzt so muß diese Datei korrekt sein, andernfalls erfolgt bei dbOpen ein Programmabsturz.
Die Prozedur Check_DBF prüft, ob eine als .dbf gekennzeichnete Datei Für Profan ungültige Feldarten können vorkommen wenn es sich bei der Datei nicht um eine dBase III Datei sondern um eine neuere Version handelt.
Um eine solche Datei in das dBase III Format zu konvertieren (soweit dies möglich ist) könnte das Programm CnvDbf (unter "Hilfsprogramme" zu finden) verwendet werden.

Download CheckDBF (ca. 2,3k)
Zurück zur Homepage



ChgFSize.inc     (Version 1.0 vom 18.03.2004)

Mit der Prozedur kann die Größe einer Datei geändert werden.
Es kann die Datei auf eine bestimmte Größe gesetzt werden; es kann die Datei aber auch um eine Anzahl von Bytes verkleinert werden.
In der Prozedur können nur Dateigrößen bis maximal 2.147.483.647 (= 2^31 - 1) Bytes bearbeitet werden!

Download (ca. 2,2k)
Zurück zur Homepage



ChsFont.inc     (Version 2.0 vom 12.04.2010)

Die Includedatei enthält die Prozedur Fontauswahl, mit deren Hilfe der Systemdialog zur Auswahl eines Fonts und der Attribute aufgerufen werden kann.
Beim Aufruf können Vorgabewerte mitgegeben werden (Font, Größe, unterstrichen, kursiv, fett und die Textfarbe). Bei der Rückkehr in das Programm werden alle diese (eventuell geänderten) Attribute dem Programm zur Verfügung gestellt.
Damit kann mit UseFont und TextColor die Schrift geändert werden.

Download (ca. 4,00k)
Zurück zur Homepage



InfDatum.inc     (Version 2.5 vom 07.03.2010)

Die Prozedur InfDatum berechnet aus einem eingegebenen Datum diverse Informationen: ob Schaltjahr, den 1. Tag der 1. Kalenderwoche und das Datum des Palmsonntags, welcher die Basis zu den beweglichen Christlichen Feiertagen ist. Die Kalenderwoche des eingegebenen Datums wird ermittelt.
Falsche 1. Kalenderwoche wurde korrigiert.
Das Datum kann in der gregorianischen Form (Tag, Monat, Jahr) oder in der julianischen Form (Tag im Jahr und Jahr) eingegeben werden und es wird in die jeweils andere Form von der Prozedur berechnet.
Es können auch eine Anzahl Tage zum eingegebenen Datum addiert oder subtrahiert werden.

Anmmerkung: Es gibt auch eine DLL "InfoDatum" (siehe unter DLLs). Dabei ist die Parameterliste mit der Parameterliste für die Prozedur nicht kompatibel.

Download InfDatum (ca. 5,50k)
Zurück zur Homepage



InfoLaufwerk.inc     (Version 1.2 vom 06.05.2010)

Die Prozedur übergibt die Daten eines Laufwerkes in einer Stringvariablen an das aufrufende Programm. Die Daten befinden sich als Substrings in der Stringvariablen.
Es werden folgende Daten bereitgestellt:
Download (ca. 3,0k)
Zurück zur Homepage



QFAnzge.inc     (Version 3.0 vom 30.04.2010)

Die Prozedur ermöglicht, auf einfachem Wege, den Fortschritt eines Programmablaufes (z.B. laden einer Datei) in einem Programm anzuzeigen.
Das Dialogfenster, das den Fortschrittsbalken enthält kann frei positioniert und kann auch in der Breite definiert werden. Damit können auch längere Texte angezeigt werden.
Der Endwert (= 100% der Anzeige) und der laufende Wert für die Anzeige werden ebenfalls im Programm bestimmt. Es werden auch die % des Fortschrittes sowie, neben dem Kopfzeilentext, auch wahlweise ein (Fortschritts-) Text angezeigt.
Die Darstellung erfolgt entweder wie bisher, mit unterbrochenem Balken, oder mit durchgehendem Balken.

Download (ca. 3,8k)
Zurück zur Homepage



Q_Help.inc     (Version 1.0 vom 30.04.2010)

Es gibt 2 Incude-Dateien:
    Q_Help.inc ermöglicht über einen einfachen Aufruf die Anzeige einer HTM Datei
    Q_HelpPDF.inc ermöglicht über einen einfachen Aufruf die Anzeige einer PDF Datei wobei bei der Anzeige auf eine bestimmte Seite positioniert werden kann (als ~Hilfedatei geeignet)

Download (ca. 144,0k)
Zurück zur Homepage



QSnap.inc     (Version 6.1 vom 12.03.2010)

Beim Testen eines Programmes ist es öfter erforderlich den Inhalt einer Variablen anzuzeigen.
Dafür gibt es den Befehl PRINT oder die Funktion @MessageBox.
Beide Möglichkeiten haben jedoch bestimmte Beschränkungen wenn der Inhalt der Variablen nicht nur aus druckbaren Zeichen besteht. Bei der @Messagebox$ wird der Inhalt nur soweit angezeigt bis im String ein Byte mit $00 vorkommt. Der Rest des Strings wird nicht angezeigt.
Bei PRINT wird zwar der volle String angezeigt, undruckbare Zeichen erscheinen aber, ebenso wie bei der @MessageBox$, als senkrechter schwarzer Strich und es ist nicht erkennbar um welches Hexzeichen es sich handelt.

Mit dem Aufruf der Prozedur Snap_Var wird der Inhalt einer Stringvariablen, mit dem Aufruf Snap_Ber wird der Inhalt einer Bereichsvariablen, ähnlich wie bei einem Hex-Dump, angezeigt. Es öffnet sich ein Dialog bei dem im linken Teil der Inhalt in Hexform und im rechten Teil in Klarschrift - soweit darstellbar - angezeigt wird.
Zur besseren Orientierung wird neben der echten Speicheradresse auch die relative Adresse in der Bereichsvariablen angezeigt.
Der Dump kann auch in eine Textdatei erfolgen. Alle Dumps während eines Programmlaufes werden in der Textdatei gesammelt.

Download (ca. 5,0k)
Zurück zur Homepage



Suche_den_Pfad.inc     (Version 1.0 vom 11.11.2010)

In Profan-Programmen werden oft externe Teile (DLLs oder andere Programme) aufgerufen. Da manche der externen Teile oft in mehreren Profanprogrammen benutzt werden ergibt sich die Frage wo diese externen Teile abgelegt sind.
Da verschiedene Profan-Programme oft in verschiedenen Verzeichnissen gespeichert sind erscheint es nicht sinnvoll diese externen Teile in jedem dieser Verzeichnisse abzulegen. Diese externen Teile werden wahrscheinlich mit einem Pfad im Programm definiert sein.
Wird das Profan-Programm als .exe weitergegeben können damit Probleme auftreten, weil sich die externen Teile vermutlich kaum in den selben Verzeichnissen befinden werden.

Suche_den_Pfad erlaubt es die Pfade zu den externen Teilen, mihilfe einer INI-Datei zur Ausführungszeit des Programmes einzulesen.

Download suche-den-pfad (ca. 481,00k)
Zurück zur Homepage



QTxtWeit.inc     (Version 2.5 vom 14.01.2010)

Mit der Prozedur TxtWeit wird die Textweite (Länge) eines Strings berechnet. Diese Berechnung ist erforderlich wenn ein Text, der mit DrawText geschrieben wird, ausgerichtet (mittig oder rechtsbündig) sein soll. Auch die Texthöhe wird jetzt übergeben.

Von Bernd Krauss gibt es eine zusätzliche Prozedur OptGrossFont.inc mit der die Fontgrösse eines Textes so verändert wird, dass er die Länge des anzuzeigenden Textfeldes optimal ausfüllt

Download (ca. 4,3k)
Zurück zur Homepage



SortList.inc     (Version 1.5 vom 14.01.2010)

Wird eine Listboxliste mit @ListBox angezeigt, erscheinen alle Einträge bei bestimmten Anzeigeformen in sortierter Folge obwohl eine Listboxliste im Allgemeinen unsortiert ist. Dies wird sichtbar, wenn die Liste ausgelesen wird.
Mit der Prozedur SortList werden die Einträge in der Listboxliste sortiert.
Im Programm ist nur, nachdem die Einträge wie bisher mit AddFiles, AddFonts ... (oder entspr. anderen Anweisungen) zur Listboxliste hinzugefügt wurden, die Anweisung Sortiere_ListBoxListe einzufügen. Danach kann die nun sortierte Liste weiterverarbeitet werden.

Download (ca. 1,9k)
Zurück zur Homepage



SortText.inc     (Version 1.1 vom 08.01.2009)

Mit dieser Prozedur kann eine Textdatei sortiert werden. Das Sortierfeld/die Sortierfelder können im Satz verteilt sein (Beispiel wenn das Datum in der Form TTMMJJJJ enthalten ist kann nur sinnvoll nach JJJJMMTT sortiert werden).
Die Sortierfolge kann jetzt wahlweise aufsteigend oder absteigend sein.


Download (ca. 2,4k)
Zurück zur Homepage



WrkNummer.inc     (Version 1.0 vom 01.04.2005) enthält die Inculdedateien CvDbfNum.inc QDatum.inc und QTfrNum.inc mit folgenden Prozeduren:

CvDbfNum.inc     (Version 3.0 vom 26.03.2002)

Cvt_numerisch_to_DBF konvertiert ein numerisches Bildschirmfeld in ein korrektes DBF Feld.
Tausenderpunkte werden ignoriert, ein Dezimalkomma wird in einen Punkt umgesetzt.
Der Wert wird rechtsbündig und mit führenden Leerstellen in einer Variablen in der Länge des Dateifeldes zurückgegeben.
Es wird auch ein Returncode zurückgegeben, der aussagt, ob der zu konvertierende Wert korrekt war, oder ob zu viele ganze oder zu viele dezimale Stellen vorkamen. Bei ungültigen Zeichen wird der Wert 0 zurückgegeben.

Cvt_numerisch_from_DBF konvertiert ein numerisches DBF Feld für die Anzeige als Bildschirmfeld.
Das Dezimaltrennzeichen muß ein Punkt sein (entspricht der Vorgabe für ein DBF Feld), sonst sind nur Ziffern und ein Minuszeichen (vor der Zahl) erlaubt.
Der konvertierte Wert wird in einer Variablen linksbündig, mit einem Dezimalkomma (falls Kommastellen vorhanden sind) und wahlweise mit Tausenderpunkten zurückgegeben. Ein Nullwert erscheint mit einer 0 (plus Komma und Nullen in den Dezimalstellen).

QDatum.inc     (Version 1.1 vom 26.02.2001)

Prüfe_Datum konvertiert ein Bildschirmfeld in der Form TTMMJJJJ, MMJJJJ, TT.MM.JJJJ, MM.JJJJ oder nur JJJJ in die Form JJJJMMTT und somit passend für ein Datumsfeld einer .DBF-Datei.
Wird kein Tag und/oder kein Monat eingegeben werden dafür Leerstellen übergeben, sodaß der zurückgegebene Wert immer 8 Stellen hat. Das Datum wird auf Gültigkeit (gültiger Tag, gültiger Monat, gültiger Schalttag) sowie auf richtige Syntax geprüft (muß mindesten 4 Stellen und darf höchstens 8 (bei Aufbereitung 10) Stellen haben.
Es gibt zwar in Profan eine Funktion @DToC$() die ebenfalls ein Datum TT.MM.JJJJ nach JJJJMMTT umsetzt aber hier muß das Datum exakt als TT.MM.JJJJ eingegeben werden sonst wird es als fehlerhaft zurückgewiesen. Außerdem wird auch nicht auf Gültigkeit geprüft.

Setze_Datum
Mit dieser Prozedur wird ein Datumsfeld JJJJMMTT (entsprechend einem .Dbf Feld) für die Anzeige als Bildschirmfeld in der Form TT.MM.JJJJ aufbereitet.

QTfrNum.inc     (Version 1.0 vom 19.07.2000)

Mit der Prozedur wird ein Zeichenfeld kommagerecht in ein numerisches Feld übertragen. Das Feld darf nur eine gültige Zahl enthalten. Enthält es ungültige Werte wird der Wert als Null zurückgegeben. Gültige Werte sind Ziffern, maximal ein Dezimalpunkt sowie ein Minuszeichen in der ersten Stelle.

Verwendung:
  1. um den Wert eines numerischen Feldes in ein anderes zu übertragen, wobei die Länge bzw. die Anzahl der Dezimalstellen unterschiedlich zur Eingabe sein können
  2. um eine Zahl aus einem Zeichenfeld in ein numerisches Feld zu übertragen und gleichzeitig zu sichern, daß nur ein korrekter Wert übernommen wird.
Download (ca. 10,2k)
Zurück zur Homepage