Thema: Delphi Problem mit const

Einzelnen Beitrag anzeigen

sharkx

Registriert seit: 24. Feb 2003
Ort: St. Ingbert
211 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Problem mit const

  Alt 28. Okt 2003, 09:40
gut, ok .. verstanden. Da bleibt mir ja nichts anderes übrig, als die Function so umzuschreiben, das ich nicht mehr die Const verwende.

Ich paste ma die Function, eventuell könnt ihr mir bissel unter die Arme greifen :)

Delphi-Quellcode:
function ReadString(path: string): string;
const
  searchstring = '[MP3] + New Release:';
var
  z1: string;
  i, p1, p2: integer;
begin
  list := TStringList.Create;
  newlist := TStringList.Create;
  list.LoadFromFile(path);
  // Release parsen
  for i := 0 to list.Count - 1 do
  begin
    p1 := Pos(searchstring, list[i]);
    if p1 = 0 then continue;
    z1 := list.Strings[i];
    p1 := Pos(TFirst, z1);
    p2 := Pos(TLast, z1);
    datum := Copy(z1, p1 + 1,(p2 - p1) - 1);
    p1 := Pos(searchstring, z1);
    z1 := Copy(z1, p1 + length(searchstring) + 1,length(z1));
    p2 := Pos(' ', z1);
    Release := Copy(z1, 1,p2 - 1);
    if not DupeInListView(datum + ' ' + Release, Form1.ListView2) then
      newlist.Add(datum + ' ' + Release)
  end;
  Result := newlist.CommaText;
  // List Freigeben
  list.Free;
  // NewList Freigeben
  newlist.Free;
end;
Wenn ich das Ganze nun ändere in ...

Delphi-Quellcode:
function ReadString(path: string): string;
var
  z1: string;
  i, p1, p2: integer;
  searchstring: string;
begin
  searchstring := sTag + ' + ' + sString;
  list := TStringList.Create;
  newlist := TStringList.Create;
  list.LoadFromFile(path);
  // Release parsen
  for i := 0 to list.Count - 1 do
  begin
    p1 := Pos(searchstring, list[i]);
    if p1 = 0 then continue;
    z1 := list.Strings[i];
    p1 := Pos(TFirst, z1);
    p2 := Pos(TLast, z1);
    datum := Copy(z1, p1 + 1,(p2 - p1) - 1);
    p1 := Pos(searchstring, z1);
    z1 := Copy(z1, p1 + length(searchstring) + 1,length(z1));
    p2 := Pos(' ', z1);
    Release := Copy(z1, 1,p2 - 1);
    if not DupeInListView(datum + ' ' + Release, Form1.ListView2) then
      newlist.Add(datum + ' ' + Release)
  end;
  Result := newlist.CommaText;
  // List Freigeben
  list.Free;
  // NewList Freigeben
  newlist.Free;
end;
bekomm ich ein anderes Ergebniss als wenn ich es mit Konstanten mache. Ich mag zwar nun nicht den Sinn verstehen warum dies so ist, aber seht ihr ne Möglichkeit es ohne konstanten zu machen?

Bin dankbar für jede Antwort, jede Erklärung und jede zeile Code :)
Programming today is a race between Software Engineers striving to build bigger and better idiot-proof Programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning!
  Mit Zitat antworten Zitat