Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Unable to invoke Code Completion due to errors in source cod (https://www.delphipraxis.net/114866-unable-invoke-code-completion-due-errors-source-cod.html)

herkulesamstart 2. Jun 2008 00:37


Unable to invoke Code Completion due to errors in source cod
 
morgen...

ich schreib grad ein kleines programm... und weiss nicht wo der Fehler sein koennte.
Ich bekomme immer folgende Fehlermeldung wenn ich einen eigenen typ benutzen will:
[Pascal Error] Unit2.pas(1): Unable to invoke Code Completion due to errors in source code

Z.B. bei so was: db.??? (ist bei mir ein typ von Tdb) Normalerweiser werden ja die Parameter angezeigt, die mir zur verfuegung stehen oder nicht?

das ist meine unit:

Delphi-Quellcode:
unit Unit2;

interface

type

  nummern = Set of 0..9;

  Tzeit = record
            hour : Integer;
            min : Integer;
            sec : Integer;
            mill : Integer
          end;

  Tuntertitel = record
                  nummer : String[5];
                  start : Tzeit;
                  ende : Tzeit;
                  s1 : string;
                  s2 : string;
                  s3 : string;
                  s4 : string;
                end;

  Tdb = Array[1..1000] of record
                   high : integer;
                   tt : Tuntertitel;
                 end;


implementation


procedure oeffnen(filename : string; var db : Tdb);
Var
  f : file ;
  zeile : string;
  i,j : integer;
BEGIN

   //-----reseten-------------------

  i := 0;
  j := 0;

  Assignfile(f,filename);
  Reset(f);

  while not eof(f) do
  begin

  i := i+1;

    readln(f,zeile);

      IF StrToInt(zeile[1]) in nummern THEN
      BEGIN
         
        db(i).tt.nummer := zeile;

        readln(f,zeile);
       

      END;
  end;

END;


end.

Ich hoffe ihr versteht mein problem und hab noch lust mir zu helfen

Dax 2. Jun 2008 00:50

Re: Unable to invoke Code Completion due to errors in source
 
Ich weiss nicht, welcher Spracher dieser Code zuzuordnen ist, aber auf jeden Fall ist es nicht Delphi.

Es gibt keine Sets von Strings, also ist die "nummer = ..."-Zeile schon mal komplett falsch.
In eine record-Deklaration kommt kein "of".
Auf Chars innerhalb eines Strings greift man mit str[idx] zu, nicht str(idx).

herkulesamstart 2. Jun 2008 01:02

Re: Unable to invoke Code Completion due to errors in source
 
ja ich hab schon lange nicht mehr in delphi programmiert... naja die groben fehler hab ich nun wohl raus. Ich einfach mal den complier drueber laufen lassen^^.

aber nun bekomm ich folgenden error, bei dem ich nicht weiter weiss:

[Error] Unit2.pas(55): Incompatible types: 'procedure, untyped pointer or untyped parameter' and 'String'

der compiler markiert mir folgende Zeile:

Delphi-Quellcode:
    readln(f,zeile);
ist direkt in der while-scheife

Dax 2. Jun 2008 01:03

Re: Unable to invoke Code Completion due to errors in source
 
Zeile 55 in deinem alten Code ist leer, also musst du uns schon mit einer aktuellen Version aushelfen... ;)

herkulesamstart 2. Jun 2008 01:09

Re: Unable to invoke Code Completion due to errors in source
 
jupp hab ich mal rein gestellt

Dax 2. Jun 2008 01:10

Re: Unable to invoke Code Completion due to errors in source
 
Ist ReadLn nicht eine Funktion, die einen string zurückgibt?

herkulesamstart 2. Jun 2008 01:13

Re: Unable to invoke Code Completion due to errors in source
 
jaein soweit ich weiss kann damit aber dateien auch zeilenweise auslesen oder nicht?

Oder weisst du eine elegantere loesung um eine datei zeilenweise auszulesen? Geht das denn vllt auch nur mir read(file,string)??

---

Bei read(f,zeile) bekomm ich allerdings die gleich Meldung

Dax 2. Jun 2008 01:28

Re: Unable to invoke Code Completion due to errors in source
 
ReadLn liest eine Zeile von der Konsole oder aus einer Textdatei, Read liest einen Datensatz aus einer typisierten Datei (also zB einen Integer aus einem File of Integer). Du hast bei dir allerdings eine untypisierte Datei, also kann Read nicht "wissen", wie viele Bytes ein Datensatz sind - also kann man es nicht kompilieren.

Um aus einer typisierten Datei lesen zu können, müssen die Typen (also Records meistens), die der Datei zu Grunde liegen, eine feste Grösse haben. Das bedeutet widerum, dass du keine dynamischen Arrays und keine Strings verwenden kannst.

Vielleicht wäre die Hier im Forum suchendpCollection was für dich?

DP-Maintenance 2. Jun 2008 05:15

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Die Delphi-IDE" nach "Object-Pascal / Delphi-Language" verschoben.
Ist ja keine Frage zur IDE

tomsel 2. Jun 2008 07:41

Re: Unable to invoke Code Completion due to errors in source
 
Du musst f einfach nur als Textfile deklarieren. Dann klappt es auch mit readln in eine stringvariable.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:08 Uhr.

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