![]() |
Re: Die häufigsten Programmierirrtümer
... und noch was
Delphi-Quellcode:
P.S.: Wie zum Teufe rücke ich denn hier in den Tags ein?!? :evil: Im Antwort-Editor ist es eingerückt :(
sl : TStringList;
[...] begin sl := TStringList.Create(nil); [...] sl.Free; // wird oft vergessen :) end; |
Re: Die häufigsten Programmierirrtümer
@ Michael:
Sehe ich auch so |
Re: Die häufigsten Programmierirrtümer
Zitat:
Ich möchte nur darauf hinweisen, das Anfänger in solch formatiertem Code Fehler schlechter finden. Dabei handelt es sich allerdings nicht um eine pauschale Aussage, sondern ein Hinweis rein aus Erfahrung mit Anfängern. |
Re: Die häufigsten Programmierirrtümer
was auch ein Irrtum sein kann, wäre das hinzufügen eines Eintrages in eine StringList z. B. mittels "Insert" statt "Add"
|
Re: Die häufigsten Programmierirrtümer
Zitat:
GOTO habe ich in "Anfängercodes" hier in der DP noch nie gesehen. Wenn man nicht ständig davor warnen würde, würden es die meisten (Anfänger) nicht mal kennen :mrgreen: (Mein erstes GOTO hab ich in einer Warnung gesehen.) |
Re: Die häufigsten Programmierirrtümer
Ich hätte da zu bieten:
Delphi-Quellcode:
Auch das Gegenteil hab ich schon oft genug gesehen:
// Damit es auf jeden Fall ausgeführt wird!!!
if 1 = 1 then begin // Code end;
Delphi-Quellcode:
Toll fand ich auch:
// Darf nicht mehr ausgeführt werden!!!
if 1 = 2 then begin // Code end;
Delphi-Quellcode:
if (Bedingung) then
begin Var1 := 'bla'; Var2 := 'bla'; end else begin Var1 := 'blubb'; Var2 := 'blubb'; end; Var1 := 'bla'; Var2 := 'bla'; |
Re: Die häufigsten Programmierirrtümer
Zitat:
|
Re: Die häufigsten Programmierirrtümer
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
var
sl : TStringList; begin sl := TStringList.Create(nil); try finally sl.Free; // oder auch FreeAndNil(sl); welches ich all zu gerne nutze end; end; |
Re: Die häufigsten Programmierirrtümer
Ein Klassiker: Zugriff auf leeres, dynamisches Array (auch Strings sind dynamische Arrays):
Delphi-Quellcode:
var
s : string; i, anz_comment : integer; begin // Sinn & Zweck: Zähle alle Zeilen, die mit * beginnen anz_comment : = 0; for i:=0 to Memo1.Lines.Count-1 do begin s := Memo1.Lines[i]; // sollte die Zeile leer sein, also s ='' dann knallts hier richtig // es gibt eine Zugriffsverletzung, denn s zeigt auf nil // auch die Bereichsprüfung kann hier keinen Schutz bieten if s[1] = '*' then Inc(anz_comment); end; |
Re: Die häufigsten Programmierirrtümer
Oder:
if a=1 or 2 (anstatt: if (a=1) or (a=2)), also so vereinfacht bzw. verkürzt, wie man in unserer natürlichen Sprache abgekürzt, aber dennoch verständlich sich auszudrücken pflegt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 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