![]() |
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 |
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). |
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:
ist direkt in der while-scheife
readln(f,zeile);
|
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... ;)
|
Re: Unable to invoke Code Completion due to errors in source
jupp hab ich mal rein gestellt
|
Re: Unable to invoke Code Completion due to errors in source
Ist ReadLn nicht eine Funktion, die einen string zurückgibt?
|
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 |
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 ![]() |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Die Delphi-IDE" nach "Object-Pascal / Delphi-Language" verschoben.
Ist ja keine Frage zur IDE |
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:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz