Delphi-PRAXiS
Seite 3 von 7     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Die häufigsten Programmierirrtümer (https://www.delphipraxis.net/149587-die-haeufigsten-programmierirrtuemer.html)

scrat1979 24. Mär 2010 20:03

Re: Die häufigsten Programmierirrtümer
 
... und noch was

Delphi-Quellcode:
 sl : TStringList;
 [...]
begin

 sl := TStringList.Create(nil);
 [...]

 sl.Free; // wird oft vergessen :)
end;
P.S.: Wie zum Teufe rücke ich denn hier in den Tags ein?!? :evil: Im Antwort-Editor ist es eingerückt :(

Wolfgang Mix 24. Mär 2010 20:08

Re: Die häufigsten Programmierirrtümer
 
@ Michael:
Sehe ich auch so

Reinhardtinho 24. Mär 2010 20:13

Re: Die häufigsten Programmierirrtümer
 
Zitat:

Zitat von Luckie
Das ist weder ein Irrtum noch ein Fehler. Der Programmierer fand eventuell seine Schreibweise lesbarer.

Ich habe weder das eine noch das andere behauptet.
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.

Helmi 24. Mär 2010 20:13

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"

BUG 24. Mär 2010 20:21

Re: Die häufigsten Programmierirrtümer
 
Zitat:

Zitat von Reinhardtinho
GOTO (siehe xkcd).

Ist aber eher kein typischer Anfängerfehler, da man dafür ja die passende Syntax (Label vor dem begin deklarieren) kennen muss.
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.)

Die Muhkuh 24. Mär 2010 20:32

Re: Die häufigsten Programmierirrtümer
 
Ich hätte da zu bieten:

Delphi-Quellcode:
// Damit es auf jeden Fall ausgeführt wird!!!
if 1 = 1 then
begin
  // Code
end;
Auch das Gegenteil hab ich schon oft genug gesehen:

Delphi-Quellcode:
// Darf nicht mehr ausgeführt werden!!!
if 1 = 2 then
begin
  // Code
end;
Toll fand ich auch:

Delphi-Quellcode:
if (Bedingung) then
begin
  Var1 := 'bla';
  Var2 := 'bla';
end
else
begin
  Var1 := 'blubb';
  Var2 := 'blubb';
end;

Var1 := 'bla';
Var2 := 'bla';

Mithrandir 24. Mär 2010 21:13

Re: Die häufigsten Programmierirrtümer
 
Zitat:

Zitat von Matze
Das sind keine "Programmierirrtümer", sondern Programmierfehler!
Da es in "Programmieren allgemein" steht, hier noch ein Fehler, der einen richtig frustrieren kann, da man ihn teils nur schwer findet:

Code:
// Der Code ist für C, C++, C#, ... (nicht für Delphi)
if (a = b) {
    // ...
}

Mit PHP geht das auch seeeeehr gut.... :wall: :wall:

s.h.a.r.k 24. Mär 2010 21:21

Re: Die häufigsten Programmierirrtümer
 
Zitat:

Zitat von Daniel G
Mit PHP geht das auch seeeeehr gut.... :wall: :wall:

OHHHHH ja... Und da soll man das erst mal finden...

Zitat:

Zitat von Helmi
was auch ein Irrtum sein kann, wäre das hinzufügen eines Eintrages in eine StringList z. B. mittels "Insert" statt "Add"

Warum? :gruebel: Man kann doch via Insert einen Index angeben. Oder meinst du, dass jeder das Insert für das Add hält?

Zitat:

Zitat von scrat1979
... und noch was

Delphi-Quellcode:
 sl : TStringList;
 [...]
begin

 sl := TStringList.Create(nil);
 [...]

 sl.Free; // wird oft vergessen :)
end;
P.S.: Wie zum Teufe rücke ich denn hier in den Tags ein?!? :evil: Im Antwort-Editor ist es eingerückt :(

Das hier mag ich noch dazu berichtigen, dass man da doch gleich das try-finally hinzufügt.


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;

sx2008 24. Mär 2010 21:26

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;

Delphi-Laie 24. Mär 2010 21:59

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.
Seite 3 von 7     123 45     Letzte »    

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