Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Mysteriöser Compilerfehler (https://www.delphipraxis.net/199309-mysterioeser-compilerfehler.html)

DualCoreCpu 14. Jan 2019 07:48

Mysteriöser Compilerfehler
 
Ich habe diesen Quellcode:

Delphi-Quellcode:
unit UDBmedia;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, Vcl.DBCtrls,
  IBX.IBSQL, IBX.IBDatabase, Data.DB, IBX.IBCustomDataSet, IBX.IBServices,
  IBX.IBConnectionBroker, IBX.IBDatabaseInfo;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    IBDatabase1: TIBDatabase;
    IBDataSet1: TIBDataSet;
    IBTransaction1: TIBTransaction;
    IBSQL1: TIBSQL;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit8: TDBEdit;
    IBDatabaseInfo1: TIBDatabaseInfo;
    IBConnectionBroker1: TIBConnectionBroker;
    IBConfigService1: TIBConfigService;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  IBDatabase1.DatabaseName := ChangeFileExt(Application.ExeName, '.fdb');
  IBDatabase1.Params.Add('USER ''SYSDBA''');
  IBDatabase1.Params.Add('PASSWORD ''masterkey''');
  IBDatabase1.Params.Add('PAGE_SIZE 4096');
  IBDatabase1.Params.Add('DEFAULT CHARACTER SET WIN1250');
  IBDatabase1.CreateDatabase;

 *if FileExists(IBDataSet1.Database.DatabaseName) then
****IBDataSet1.Open
**else
  begin
****with IBDataSet1.FieldDefs do
    begin
******Clear;
******Add('media', ftString, 3);
******Add('author', ftString, 30);
******Add('title', ftString, 40);
****
****  IBDataSet1.CreateDataSet;
    end; { von with }
**

  end; { von else }

  IBDataSet1.LoadFromFile(IBDatabase1.DatabaseName);

end; { von FormCreate }

end.

Der Compiler spuckt diese Fehlermeldungen aus:

dcc32 Befehlszeile für "dbmedia.dpr"
c:\program files (x86)\embarcadero\studio\20.0\bin\dcc32.exe -$O- -$W+ --no-config -M -Q -TX.exe -AGenerics.Collections=System.Generics.Collections;
Generics.Defaults=System.Generics.Defaults;WinType s=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes= BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG
-E.\Win32\Debug -I"c:\program files (x86)\embarcadero\studio\20.0\lib\Win32\debug\DE"; "c:\program files
(x86)\embarcadero\studio\20.0\lib\Win32\debug";"c: \program files (x86)\embarcadero\studio\20.0\lib\Win32\release\DE ";"c:\program files
(x86)\embarcadero\studio\20.0\lib\Win32\release";C :\Users\Konta\Documents\Embarcadero\Studio\20.0\Im ports;"c:\program files
(x86)\embarcadero\studio\20.0\Imports";C:\Users\Pu blic\Documents\Embarcadero\Studio\20.0\Dcp;"c:\pro gram files (x86)\embarcadero\studio\20.0\include"
-LEC:\Users\Public\Documents\Embarcadero\Studio\20. 0\Bpl -LNC:\Users\Public\Documents\Embarcadero\Studio\20. 0\Dcp -NU.\Win32\Debug -NSWinapi;
System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win; Xml.Win;Bde;System;Xml;Data;Datasnap;Web;Soap;Vcl; Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;
-O"c:\program files (x86)\embarcadero\studio\20.0\lib\Win32\release";C :\Users\Konta\Documents\Embarcadero\Studio\20.0\Im ports;"c:\program files
(x86)\embarcadero\studio\20.0\Imports";C:\Users\Pu blic\Documents\Embarcadero\Studio\20.0\Dcp;"c:\pro gram files (x86)\embarcadero\studio\20.0\include"
-R"c:\program files (x86)\embarcadero\studio\20.0\lib\Win32\release\DE ";"c:\program files (x86)\embarcadero\studio\20.0\lib\Win32\release";
C:\Users\Konta\Documents\Embarcadero\Studio\20.0\I mports;"c:\program files (x86)\embarcadero\studio\20.0\Imports";
C:\Users\Public\Documents\Embarcadero\Studio\20.0\ Dcp;"c:\program files (x86)\embarcadero\studio\20.0\include" -U"c:\program files
(x86)\embarcadero\studio\20.0\lib\Win32\debug\DE"; "c:\program files (x86)\embarcadero\studio\20.0\lib\Win32\debug";"c: \program files
(x86)\embarcadero\studio\20.0\lib\Win32\release\DE ";"c:\program files (x86)\embarcadero\studio\20.0\lib\Win32\release";
C:\Users\Konta\Documents\Embarcadero\Studio\20.0\I mports;"c:\program files (x86)\embarcadero\studio\20.0\Imports";
C:\Users\Public\Documents\Embarcadero\Studio\20.0\ Dcp;"c:\program files (x86)\embarcadero\studio\20.0\include" -V -VN
-NBC:\Users\Public\Documents\Embarcadero\Studio\20. 0\Dcp -NHC:\Users\Public\Documents\Embarcadero\Studio\20. 0\hpp\Win32 -NO.\Win32\Debug dbmedia.dpr

[dcc32 Fehler] UDBmedia.pas(51): E2003 Undeklarierter Bezeichner: '*if'
[dcc32 Fehler] UDBmedia.pas(51): E2029 'END' erwartet, aber 'THEN' gefunden
[dcc32 Fehler] UDBmedia.pas(54): E2029 ';' erwartet, aber 'BEGIN' gefunden
[dcc32 Fehler] UDBmedia.pas(55): E2003 Undeklarierter Bezeichner: '****with'
[dcc32 Fehler] UDBmedia.pas(55): E2066 Operator oder Semikolon fehlt
[dcc32 Fehler] UDBmedia.pas(55): E2066 Operator oder Semikolon fehlt
[dcc32 Fehler] UDBmedia.pas(56): E2029 '.' erwartet, aber 'BEGIN' gefunden
[dcc32 Fehler] UDBmedia.pas(57): E2003 Undeklarierter Bezeichner: '******Clear'
[dcc32 Fehler] UDBmedia.pas(58): E2003 Undeklarierter Bezeichner: '******Add'
[dcc32 Fehler] UDBmedia.pas(61): E2003 Undeklarierter Bezeichner: '****'
[dcc32 Fehler] UDBmedia.pas(62): E2066 Operator oder Semikolon fehlt
[dcc32 Fehler] UDBmedia.pas(62): E2066 Operator oder Semikolon fehlt
[dcc32 Warnung] UDBmedia.pas(63): W1011 Text hinter dem abschließenden 'END.' - wird vom Compiler ignoriert
[dcc32 Fataler Fehler] dbmedia.dpr(5): F2063 Verwendete Unit 'UDBmedia.pas' kann nicht compiliert werden
Misslungen
Verstrichene Zeit: 00:00:01.3


Was läuft hier falsch?

Klaus01 14. Jan 2019 07:57

AW: Mysteriöser Compilerfehler
 
.. und wenn Du das ganze ohne "with" probierst?


Delphi-Quellcode:
 
if FileExists(IBDataSet1.Database.DatabaseName) then
  IBDataSet1.Open
else
  begin
    IBDataSet1.FieldDefs.Clear;
    IBDataSet1.FieldDefs.Add('media', ftString, 3);
    IBDataSet1.FieldDefs.Add('author', ftString, 30);
    IBDataSet1.FieldDefs.Add('title', ftString, 40);
   
    IBDataSet1.CreateDataSet;
  end; { von else }

  IBDataSet1.LoadFromFile(IBDatabase1.DatabaseName);

end; { von FormCreate }
Grüße
Klaus

Moombas 14. Jan 2019 07:58

AW: Mysteriöser Compilerfehler
 
was willst du mit den "*" bezwecken? Auskommentieren einzelner Zeilen wäre z.B. "//"

mkinzler 14. Jan 2019 08:00

AW: Mysteriöser Compilerfehler
 
Oder die * am Anfang der Zeilen entfernst

Sherlock 14. Jan 2019 08:53

AW: Mysteriöser Compilerfehler
 
Du kannst doch eigentlich Delphi. Warum übersiehst Du die * im Quelltext und warum gibst du den ganzen irrelevanten Krempel aus? dcc32 Fehler sind interessant. Wenn es davon keine mehr gibt, und es dennoch nicht läuft, dann kann man nach dem Rest schauen.

Sherlock

freimatz 14. Jan 2019 08:54

AW: Mysteriöser Compilerfehler
 
Gnade - es ist Montag morgen ;-)

Pfaffe 14. Jan 2019 09:17

AW: Mysteriöser Compilerfehler
 
Mein Opa hat gesagt: "Erst denken, dann machen" :lol:

p80286 14. Jan 2019 09:59

AW: Mysteriöser Compilerfehler
 
Sei nicht so streng, er hat nur gesehen was da stehen sollte, nich was da stand.


Gruß
K-H

DP-Maintenance 14. Jan 2019 15:25

Dieses Thema wurde am "14. Jan 2019, 16:25 Uhr" von "Luckie" aus dem Forum "Die Delphi-IDE" in das Forum "Object-Pascal / Delphi-Language" verschoben.

DualCoreCpu 14. Jan 2019 19:59

AW: Mysteriöser Compilerfehler
 
Problem gelöst. Ich hatte den Quellcode aus dem Internet kopiert und da sind andere Zeichen mit in den Quellcode gekommen. Diese haben die Compilerfehler verursacht.

Sorry.

Wollte den Beitrag gar nicht absenden, habe deshalb ohne abzusenden die Seite auf die voherige geschaltet und gehofft, der Beitrag werde so dann nicht abgeschickt. Nun ist er doch da.

Ich hatte zuerst die Compilermeldungen aus Delphi hierher kopiert und meine Frage formuliert, danach erst den Quellcode kopiert und die Sterne gesehen. Wollte das Absenden dann Stoppen, was mit nicht gelungen ist. Hätte wohl besser die Seite ganz wegklicken sollen. Oder den Beitragstext komplett löschen sollen. In der Delphi IDE wurden keine ungültigen Zeichen angezeigt, nachdem ich den Quellcode kopiert hatte. Erst hier in diesem Beitrag waren diese Zeichen als Sterne sichtbar. Hätte ich den Quellcode zuerst hierher kopiert, vor den Compilermeldungen, hätte ich sofort gesehen, was hier schief gelaufen ist. Seht es mir bitte nach, ich war gestern auf einer Geburtstagsfeier. :)

Die Compilerfehler sind durch die ungültigen Zeichen entstanden, die ich bei meiner Copy & Paste Aktion von der Internetseite mit kopiert hatte. Diese Zeichen gelöscht und der Quellcode wird einwandfrei kompiliert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz