[Pascal] Problem mit Pascal Programm

freaky_jan

Aktives Mitglied
Hallo
Ich habe gerade ein kleines Programm geschrieben, dass wie folgt aussieht:

Code:
PROGRAM Drucken;
USES Crt, Printer;
VAR Text: String;
BEGIN
ClrScr;
HighVideo;
WriteLn ('Welcher Text soll ausgedruckt werden? (Drucker muss eingeschaltet sein)');
NormVideo;
ReadLn (Text);
WriteLn ('Text wird jetzt gedruckt... ');
WriteLn (Lst, Text);
ReadKey;
END.
Wenn ich das Programm nun compilieren will, meldet der Compiler die Fehlermeldung, dass er die Datei printer.vpi nicht finden kann. Ich habe schon im Unitverzeichnis meines Compilers nachgesehen. Die Datei printer.vpi ist wirklich nicht drin. Kann man solche fehlende Units irgendwo downloaden?

Mit freundlichen Grüssen

freaky_jan
 
Zuletzt bearbeitet von einem Moderator:
Hallo freaky_jan

Ich weiss nicht genau wie das mit Pascal genau läuft...

Aber vielleicht hilft dir eine neuinstallation (mit allen komponenten) des Compilers und dessen Bibliotheken...

Soweit ich weiss bringt jeder Druckerhersteller mit seinen Druckern eine eigene printer.vpi mit.. Sicher bin ich mir aber nicht...
 

freaky_jan

Aktives Mitglied
Das mit der Neuinstallation habe ich jetzt schon ein paar mal versucht und das hat nie etwas gebracht. Als ich den Compiler neu installiert hatte, hatte ich übrigens mit der Unit crt.vpi genau dasselbe Problem. Das hat sich dann jedoch plötzlich von einer Sekunde zur anderen in Luft aufgelöst und es hat funktioniert, ohne das ich was geändert habe. Vielleicht ist es mit printer.vpi ja auch so.
 

maxcimo

Stammgast
Hi freaky_jan,

Ich kenne mich auch nicht so gut aus mit Pascal, aber ich nehme an diese vpi Files sind vorkompilierte Units und dein Compiler findet nun die printer.vpi nicht im Klassenpfad (oder wie das auch immer bei Pascal heisst).
Hast du in deinem Pascal-Verzeichnis schon nach printer.vpi gesucht? Falls du die Datei findest, könntest du sie einfach an denselben Ort kopieren wo crt.vpi ist. Suche auch nach printer.pas, denn der Compiler wird daraus wohl automatisch ein vpi bauen.

Falls du nichts finden solltest, dann lade dir doch die neuste Virtual Pascal Version runter. Diese findest du hier. Ich habe es gleich mal runtergeladen und installiert. Im Verzeichnis source/rtl/ findest du dann eine printer.pas Datei.

gruss, m.
 

freaky_jan

Aktives Mitglied
Hallo maxcimo,

Ich habe im Virtual Pascal Verzeichnis nachgeschaut und konnte die Datei printer.vpi nirgends finden. Ich habe aber im Verzeichnis source\rtl die Datei printer.pas gefunden. Wo soll ich diese Datei hinkopieren? Ich bin mir nicht sicher in welchem Verzeichnis die Units gespeichert sind. Ich habe zwar die Datei crt.vpi im Verzeichnis out.w32\units gefunden, bezweifle jedoch, dass dies das richtige Verzeichnis ist. Kannst du mir sagen, wie das richtige Verzeichnis lautet?

Gruss

freaky_jan
 

maxcimo

Stammgast
Hi freaky_jan,

Sorry für die späte Antwort ... aber: Happy New Year :)

Nun wie compilierst du dein Programm? Auf der Befehlszeile? Oder verwendest du die mitgelieferte Virtual Pascal "IDE"?

Falls du via Befehlszeile compilierst, musst du darauf achten das der Compiler und der Linker die referenzierten Units finden können (insbesondere die printer.pas Datei). Du könntest nun versuchen die printer.pas Datei in dein aktuelles Arbeitsverzeichnis zu kopieren, d.h. dorthin wo auch dein eigenes Programm liegt. Diese Methode (falls sie funktioniert) wäre nicht sehr elegant, da du jedes mal wenn du eine externe Library brauchst diese wieder kopieren müsstest.

Besser wäre es wie folgt: du teilst dem Compiler mit den entsprechenden "Switches" die richtigen source/library/unit Verzeichnisse mit (die Erklärung der "Switches" kannst du mit "vpc -h" abrufen):
Code:
bin.w32\vpc -CW -Eout.w32 -Isource\rtl -Llib.w32 -Oout.w32\units -Rres.w32 -Uunits.w32 Drucken.pas
Ich hab dein Programm bei mir im Virtual Pascal Verzeichnis (C:\vp21\) als Drucken.pas gespeichert und den obigen Befehl von der Commandozeile im Verzeichnis C:\vp21 erfolgreich ausführen können :cool:

Dasselbe kannst du auch mit der VP IDE machen. Dort musst du sicherstellen, dass die entsprechenden Verzeichnisse unter Options->Directories richtig eingestellt sind. Danach mit Compile->Build alles compilieren.

Hoffe das funktioniert ...
 
Oben