Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#31

Re: Die häufigsten Programmierirrtümer

  Alt 24. Mär 2010, 22:12
@sx2008: Ist ein s := '' gleichzusetzen, wie s := nil? Wäre mir definitiv neu, wobei ich nicht weiß, wie das intern gehandelt wird.

Zitat von sx2008:
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;
Hier will ich noch anbringen, dass ich es schon mehrfach gesehen habe, dass bei Schleifen entweder bei 1 angefangen wird und der Zähler dann als Index verwendet wird, wobei dieser dann nicht so verwendet wird Zähler - 1. Beim letzten Element schlägt dies dann folglich fehl. Oder dass zwar bei 0 begonnen wird zu zählen, aber bis (in diesem Fall) Memo1.Lines.Count läuft und nicht Memo1.Lines.Count - 1.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat