@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)