Blutige Anfängerfrage

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

Antworten
Benutzeravatar
jeannie
Rookie
Rookie
Beiträge: 4
Registriert: Sa, 05. Sep 2009 22:12

Blutige Anfängerfrage

Beitrag von jeannie »

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.
Benutzeravatar
AUGE_OHR
Marvin
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

Beitrag von AUGE_OHR »

jeannie hat geschrieben:Nun, es werden Unterprogramme aus eigenen Sourcedateien aufgerufen mit dem ganz einfachen Befehl "DO prg001".
bei Xbase++ musst du eine *.XPJ Datei erstellen.

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
Benutzeravatar
jeannie
Rookie
Rookie
Beiträge: 4
Registriert: Sa, 05. Sep 2009 22:12

Re: Blutige Anfängerfrage

Beitrag von jeannie »

Das ging jetzt aber fix, besten Dank.

Also:

Code: Alles auswählen

2.) DIR *.PRG /B >> PROJECT.TXT
3.) PBUILD @PROJECT.TXT
hab ich gemacht.

Dann

Code: Alles auswählen

xpp project.xpj
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:

Code: Alles auswählen

[project.EXE]
   FIB000.PRG
   FIB002.PRG
   ...
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. :(
Benutzeravatar
AUGE_OHR
Marvin
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

Beitrag von AUGE_OHR »

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.
hm ... es wäre besser wenn du die Meldungen in eine Datei "umleitest" und uns die zeigst bevor du was löscht ...

Code: Alles auswählen

PBULID PROJECT.XPJ >> LogFile.TXT
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
   ...
hm ... Frage : fängt jedes *.PRG mit PROCEDURE oder FUNCTION an ?

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
Benutzeravatar
Jan
Marvin
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

Beitrag von Jan »

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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
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

Beitrag von brandelh »

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.
Gruß
Hubert
Benutzeravatar
jeannie
Rookie
Rookie
Beiträge: 4
Registriert: Sa, 05. Sep 2009 22:12

Re: Blutige Anfängerfrage

Beitrag von jeannie »

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.
Benutzeravatar
AUGE_OHR
Marvin
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

Beitrag von AUGE_OHR »

jeannie hat geschrieben:Ein Frage erlaube ich mir noch: Bleibt man beim Fenster auf die 25x80 Zeichen beschränkt oder gibts da Potential?
siehe dir mal C:\ALASKA\XPPW32\Source\SYS\AppSys.prg

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
änderst in 43 x 126 und den Font "Alaska Crt" benutzt hast du ca. eine 1024x768 Auflösung.

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
Benutzeravatar
jeannie
Rookie
Rookie
Beiträge: 4
Registriert: Sa, 05. Sep 2009 22:12

Re: Blutige Anfängerfrage

Beitrag von jeannie »

AUGE_OHR hat geschrieben:
jeannie hat geschrieben:Ein Frage erlaube ich mir noch: Bleibt man beim Fenster auf die 25x80 Zeichen beschränkt oder gibts da Potential?
siehe dir mal C:\ALASKA\XPPW32\Source\SYS\AppSys.prg

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
änderst in 43 x 126 und den Font "Alaska Crt" benutzt hast du ca. eine 1024x768 Auflösung.

btw. als Font solltest du ein "proportional Systemfont" wählen ( den alle haben ) sonst sieht es auf einem anderen PC "anderes" aus.
Danke, muss ich gleich mal ausprobieren. Verstehe ich das richtig: "Alaska Crt" kommt immer mit?

Proportionale Schriften sind nicht mein Ding, als alter Mainframe-Dinosaurier bin ich halt immer noch auf fixe Schriften fixiert. Bild
Antworten