Error: Identifier not found "result"

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
iaby
Beiträge: 24
Registriert: Mi 25. Okt 2006, 19:48

Error: Identifier not found "result"

Beitrag von iaby »

Hallo zusammen,

ich bekomme folgenden Fehler in einem simplen konsolen-programm!
Vielleicht kann mir ja jemand helfen! Ich benutze Lazarus 0.9.18.

Hier mal ein kleiner Code-Auszug, bei dem dieser Fehler (unter anderem) auftritt:

Code: Alles auswählen

{returns the next entry from a csv string}
function GetNext(csv_line: string): string;
begin
result:= copy(csv_line, 1, Pos(';', csv_line) - 1);
end;


Ich hab mit Lazarus noch nicht gearbeitet, habe den source über make und dann make install installiert und dann einfach mit "lazarus" gestartet.
Das .dpr File hab ich aus einer funktionierenden Windows-Anwendung genommen.
Ich denke mal ich hab irgendwo noch etwas ziemlich falsch gemacht! Vielleicht was nicht installiert oder in den settings oder so?

Wäre um Hilfe echt dankbar :)

Gruß,
iaby

PS: folgende Fehlermeldung bekomme ich auch noch:
Fatal: You need ObjFpc (-S2) or Delphi (-Sd) mode to compile this module

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Error: Identifier not found "result"

Beitrag von theo »

PS: folgende Fehlermeldung bekomme ich auch noch:
Fatal: You need ObjFpc (-S2) or Delphi (-Sd) mode to compile this module


Dann tu das doch einfach! Folgendes Programm compiliert:

Code: Alles auswählen

program Project1;
 
{$mode objfpc}{$H+}
 
function GetNext(csv_line: string): string;
begin
  result:= copy(csv_line, 1, Pos(';', csv_line) - 1);
end;
 
begin
  writeln(GetNext('testen;sie'));
end.

iaby
Beiträge: 24
Registriert: Mi 25. Okt 2006, 19:48

Beitrag von iaby »

Danke, das hilft :)
Jetzt lässt sich das ganze programm problemlos kompilieren!

Kannst du mir noch kurz sagen, was das macht und wieso ich das brauche?

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

{$mode objfpc}
Sagt dem Compiler er möchte doch bitte objektpascal benutzen ;)
{$mode delphi}
Tut das selbe um möglichst Delphi compatibel zu sein.
Allerdings ist Delphi sprachtechnisch viel unsauberer als objektpascal, solang dus also mit objektpascal compiliert bekommst ists besser.

{$H+} Sagt dem Compiler das String=AnsiString ist
{$H-} Sagt ihm String=Shortstring
warum theo das hier eingefügt hat kann ich dir nicht so genau sagen.

ftp://ftp.freepascal.org/pub/fpc/docs-pdf/user.pdf

Da sind nochmal alle compilerswitches dokumentiert.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

iaby
Beiträge: 24
Registriert: Mi 25. Okt 2006, 19:48

Beitrag von iaby »

Super! Dankeschön!

Lazarus rockt wirklich :)
Jetzt laufen meine Programme endlich auch mal unter Linux!!

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Christian hat geschrieben:{$H+} Sagt dem Compiler das String=AnsiString ist
{$H-} Sagt ihm String=Shortstring
warum theo das hier eingefügt hat kann ich dir nicht so genau sagen.


Naja, müsste hier nicht dringend sein. Lazarus tut's aber auch wenn du eine neues Programm (Freepascal) erzeugst.
Bei (neueren?) Delphis ist's halt Standardeinstellung, und somit gibt's weniger Fragen, wenn wir das auch so machen.

Antworten