Blutige Anfängerfrage
Moderator: Moderatoren
Blutige Anfängerfrage
Hallo zusammen, ich quäle mich hier mit der Trialversion rum.
Clipper habe ich vor 10, 12, 15, ... also vor langer Zeit mal benutzt. Nun möchte ich ein altes Projekt in Angriff nehmen, nämlich eine ganz spezielle Buchhaltungsapplikation.
Ein gewisser Grundstock an Sourcen aus Clipperzeiten ist da, ganz einfache Algorithmen. Die sollte ja ganz einfach mit Xbase compilierbar sein.
Nun, es werden Unterprogramme aus eigenen Sourcedateien aufgerufen mit dem ganz einfachen Befehl "DO prg001".
Mein Problem: wenn ich mit "xpp altes.prg" kompiliere kommen all die Unterprogramme nicht mit, Fehlermeldung gibt es keine. Bei "alink altes" fehlen im dann die entsprechenden objs, dort merkt er's.
Der Ersatz von *do prg001" durch "prg001()" hat auch keine Besserung gebracht.
Falls einer einen Tipp hat: her damit.
Clipper habe ich vor 10, 12, 15, ... also vor langer Zeit mal benutzt. Nun möchte ich ein altes Projekt in Angriff nehmen, nämlich eine ganz spezielle Buchhaltungsapplikation.
Ein gewisser Grundstock an Sourcen aus Clipperzeiten ist da, ganz einfache Algorithmen. Die sollte ja ganz einfach mit Xbase compilierbar sein.
Nun, es werden Unterprogramme aus eigenen Sourcedateien aufgerufen mit dem ganz einfachen Befehl "DO prg001".
Mein Problem: wenn ich mit "xpp altes.prg" kompiliere kommen all die Unterprogramme nicht mit, Fehlermeldung gibt es keine. Bei "alink altes" fehlen im dann die entsprechenden objs, dort merkt er's.
Der Ersatz von *do prg001" durch "prg001()" hat auch keine Besserung gebracht.
Falls einer einen Tipp hat: her damit.
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Blutige Anfängerfrage
bei Xbase++ musst du eine *.XPJ Datei erstellen.jeannie hat geschrieben:Nun, es werden Unterprogramme aus eigenen Sourcedateien aufgerufen mit dem ganz einfachen Befehl "DO prg001".
1.) alle benötigten PRG in ein Verzeichniss
2.) DIR *.PRG /B >> PROJECT.TXT
3.) PBUILD @PROJECT.TXT
nun solltest du eine PROJECT.XPJ bekommen die du zum compilieren/linken benutzt.
gruss by OHR
Jimmy
Jimmy
Re: Blutige Anfängerfrage
Das ging jetzt aber fix, besten Dank.
Also:
hab ich gemacht.
Dann
Da ist er mit einem Rattenschwanz an Fehlermeldungen gekommen. Die entsprechenden Zeilen habe ich einfach aus dem [PROJECT] und dem [PROJECT.XPJ]-Absatz gelöscht.
Einen Fehler habe ich noch, da bin ich mit meinem Latein am Ende:
Auf die Zeile mit FIB000.PRG gibt er "error XBT0200: Syntax Error" aus (aber nicht auf die folgenden, gleich aufgebauten Zeilen). Ich hab bezgl. der Syntax in der Hilfe nachgeguckt, aber dort wird es gleich geschrieben. Ich hab probiert dort ein anderes prg hineinzuschreiben. Die Fehlermeldung bleibt.
Schon wieder am Berg.
Also:
Code: Alles auswählen
2.) DIR *.PRG /B >> PROJECT.TXT
3.) PBUILD @PROJECT.TXT
Dann
Code: Alles auswählen
xpp project.xpj
Einen Fehler habe ich noch, da bin ich mit meinem Latein am Ende:
Code: Alles auswählen
[project.EXE]
FIB000.PRG
FIB002.PRG
...
Schon wieder am Berg.
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Blutige Anfängerfrage
hm ... es wäre besser wenn du die Meldungen in eine Datei "umleitest" und uns die zeigst bevor du was löscht ...jeannie hat geschrieben:Da ist er mit einem Rattenschwanz an Fehlermeldungen gekommen. Die entsprechenden Zeilen habe ich einfach aus dem [PROJECT] und dem [PROJECT.XPJ]-Absatz gelöscht.
Code: Alles auswählen
PBULID PROJECT.XPJ >> LogFile.TXT
hm ... Frage : fängt jedes *.PRG mit PROCEDURE oder FUNCTION an ?jeannie hat geschrieben:Einen Fehler habe ich noch, da bin ich mit meinem Latein am Ende:Code: Alles auswählen
[project.EXE] FIB000.PRG FIB002.PRG ...
bei Cl*pper heisst es im 1st PRG : Procedure "Start" ... bei Xbase++ Procedure "Main"
verwendest du "externe" Library wie "CA-Tools" ?
wie schon gesagt ohne genaue Fehlermeldung kann man kaum einen Aussage machen.
gruss by OHR
Jimmy
Jimmy
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Blutige Anfängerfrage
Xbase++ ist in manchen Punkten strenger als Clipper, deswegen gibt es häufig Fehlermeldungen beim Compilieren, wo CLipper das einfach hätte durchgehen lassen. Es gibt aber in der Onlinehilfe ein Kapitel, was anders ist in Xbase++. Eines ist die von Jimmy angesprochene Main. Schau doch da mal rein, vielleicht kannst Du damit schon mal die Meldungen reduzieren.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Blutige Anfängerfrage
Hi,
es muss eine procedure main() geben, je nach compiler schalter wird bei xBase wie bei clipper eine PRG ohne Funktion als Funktion mit dem Namen der PRG erstellt.
DAS SOLLTE MAN dringend umstellen, eindeutige FUNCTION / PROCEDURE ...
Ich habe zur Migration einen Vortrag auf der Devcon 2007 gehalten, dieser ist mit Beispielen hier in der Wissensbasis MIG_01 (oder so ähnlich) vorhanden.
Weiterhin empfehle ich ausdrücklich das Kapitel "Unterschiede zu Clipper" zu lesen.
es muss eine procedure main() geben, je nach compiler schalter wird bei xBase wie bei clipper eine PRG ohne Funktion als Funktion mit dem Namen der PRG erstellt.
DAS SOLLTE MAN dringend umstellen, eindeutige FUNCTION / PROCEDURE ...
Ich habe zur Migration einen Vortrag auf der Devcon 2007 gehalten, dieser ist mit Beispielen hier in der Wissensbasis MIG_01 (oder so ähnlich) vorhanden.
Weiterhin empfehle ich ausdrücklich das Kapitel "Unterschiede zu Clipper" zu lesen.
Gruß
Hubert
Hubert
Re: Blutige Anfängerfrage
Hallo zusammen, besten Dank für den prominenten Support.
Ich hatte ja ein Unterprogramm mit Standardroutinen, das ich mit SET PROCEDURE TO einband, das klappte. Ich hab jetzt alle benötigten Programme mit diesem Befehl eingebunden und jetzt klappts bestens mit dem automatisch linken. Ist zwar etwas mehr Aufwand, aber es läuft. Vielleicht komme ich irgendwann mal aufs PROJECT-File zurück, aber im Moment muss ich nur ein paar Daten hin- und herschieben, da tuts das.
Die Main-Routine mit dem Menu wie ich sie hatte war komplett auf Tastatur ausgerichtet und so eher eine Hypothek. Darum habe ich das DBGET2.PRG aus den Beispielprogrammen genommen und werde auf dieser aufbauen. Die Buttons dienen als Menu und Daten werden in den Unterprogrammen abgehandelt.
Ein Frage erlaube ich mir noch: Bleibt man beim Fenster auf die 25x80 Zeichen beschränkt oder gibts da Potential? Die separaten graphischen Windows tue ich mir noch nicht an, mit dem Hauptwindows komme ich sehr gut zurecht.
Ich hatte ja ein Unterprogramm mit Standardroutinen, das ich mit SET PROCEDURE TO einband, das klappte. Ich hab jetzt alle benötigten Programme mit diesem Befehl eingebunden und jetzt klappts bestens mit dem automatisch linken. Ist zwar etwas mehr Aufwand, aber es läuft. Vielleicht komme ich irgendwann mal aufs PROJECT-File zurück, aber im Moment muss ich nur ein paar Daten hin- und herschieben, da tuts das.
Die Main-Routine mit dem Menu wie ich sie hatte war komplett auf Tastatur ausgerichtet und so eher eine Hypothek. Darum habe ich das DBGET2.PRG aus den Beispielprogrammen genommen und werde auf dieser aufbauen. Die Buttons dienen als Menu und Daten werden in den Unterprogrammen abgehandelt.
Ein Frage erlaube ich mir noch: Bleibt man beim Fenster auf die 25x80 Zeichen beschränkt oder gibts da Potential? Die separaten graphischen Windows tue ich mir noch nicht an, mit dem Hauptwindows komme ich sehr gut zurecht.
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Blutige Anfängerfrage
siehe dir mal C:\ALASKA\XPPW32\Source\SYS\AppSys.prgjeannie hat geschrieben:Ein Frage erlaube ich mir noch: Bleibt man beim Fenster auf die 25x80 Zeichen beschränkt oder gibts da Potential?
wenn du AppSys einbindest und dann mit /PM:PM linkst bekommst du damit eine 640x480 Auflösung.
wenn du nun die #define
Code: Alles auswählen
#define DEF_ROWS 25
#define DEF_COLS 80
btw. als Font solltest du ein "proportional Systemfont" wählen ( den alle haben ) sonst sieht es auf einem anderen PC "anderes" aus.
gruss by OHR
Jimmy
Jimmy
Re: Blutige Anfängerfrage
Danke, muss ich gleich mal ausprobieren. Verstehe ich das richtig: "Alaska Crt" kommt immer mit?AUGE_OHR hat geschrieben:siehe dir mal C:\ALASKA\XPPW32\Source\SYS\AppSys.prgjeannie hat geschrieben:Ein Frage erlaube ich mir noch: Bleibt man beim Fenster auf die 25x80 Zeichen beschränkt oder gibts da Potential?
wenn du AppSys einbindest und dann mit /PM:PM linkst bekommst du damit eine 640x480 Auflösung.
wenn du nun die #defineänderst in 43 x 126 und den Font "Alaska Crt" benutzt hast du ca. eine 1024x768 Auflösung.Code: Alles auswählen
#define DEF_ROWS 25 #define DEF_COLS 80
btw. als Font solltest du ein "proportional Systemfont" wählen ( den alle haben ) sonst sieht es auf einem anderen PC "anderes" aus.
Proportionale Schriften sind nicht mein Ding, als alter Mainframe-Dinosaurier bin ich halt immer noch auf fixe Schriften fixiert.