Hi,
ich möchte meinen C-Kernel auf Pascal umstellen, da mir Pascal lieber ist (bin erfahrener damit). Nun habe ich die Funktion WriteChar, welche nur dafür zuständig ist, ein Zeichen auszugeben.
Da mir WriteChar wenig nützt, brauche ich die regelrechte Standardfunktion WriteLn:
Woran könnte das liegen ? Ich arbeite mit FreePascal und habe folgenden Code in der system.pas (vlt. hängt es ja damit zusammen):
ich möchte meinen C-Kernel auf Pascal umstellen, da mir Pascal lieber ist (bin erfahrener damit). Nun habe ich die Funktion WriteChar, welche nur dafür zuständig ist, ein Zeichen auszugeben.
Code: [Auswählen]
type
TScreen = Array[1..25, 1..80] of record
c : Char;
attr : Byte;
end;
Code: [Auswählen]
procedure WriteChar(c : Char);
begin
Screen^[X, Y].c := c;
inc(Y);
end;
WriteChar('a') und man sieht ein a auf dem Bildschirm.Da mir WriteChar wenig nützt, brauche ich die regelrechte Standardfunktion WriteLn:
Code: [Auswählen]
procedure WriteLn(s : String);
var i : Integer;
begin
for i := 1 to Length(s) do
WriteChar(s[i]);
end;
WriteLine('a') und man sieht nichts auf dem Bildschirm. Ich habe herausgefunden, dass Length(s) und s aus irgendeinem Grund nicht funktionieren ODER die Übergabe des Strings an die Funktion schiefläuft, wenn man folgenden Code benutzt, sieht man nichts auf dem Bildschirm:Code: [Auswählen]
procedure WriteLn(s : String);
var i : Integer;
begin
for i := 1 to Length(s) do
WriteChar('a');
end;
Nimmt man anstelle von Length(s) Length(s)+3, hat man 3 a auf dem Bildschirm.Woran könnte das liegen ? Ich arbeite mit FreePascal und habe folgenden Code in der system.pas (vlt. hängt es ja damit zusammen):
Code: [Auswählen]
unit system;
interface
type
ValSInt = LongInt;
SizeInt = LongInt;
procedure FPC_INITIALIZEUNITS; compilerproc;
procedure FPC_DO_EXIT; compilerproc;
procedure fpc_shortstr_assign(len: longint; src, dst: pointer);
function fpc_shortstr_concat(const s1, s2 : ShortString) : ShortString; compilerproc;
function fpc_shortstr_to_shortstr(len : LongInt; const sstr : ShortString) : ShortString; compilerproc;
implementation
procedure FPC_INITIALIZEUNITS; alias: 'FPC_INITIALIZEUNITS'; compilerproc;
begin
end;
...

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken


Gespeichert
