AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kommischer ERange Error

Ein Thema von PhilmacFLy · begonnen am 14. Nov 2012 · letzter Beitrag vom 14. Nov 2012
 
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Kommischer EERange Rror Zugriffsverletzung

  Alt 14. Nov 2012, 12:18
Wesentlich weiter oben, ich post mal den ganzen funktions code:
Delphi-Quellcode:
function TForm1.extractfuncs(var statevar: string; const endswitch: integer;
  code: TStrings): boolean;
var
  kommentar: boolean;
  newfunc: boolean;
  k: integer;
  j, i, l: integer;
  tmp: integer;
  Count, count2: integer;
  foo: string;
begin
  Count := 0;
  count2 := 0;
  tmp := 0;
  Result := False;
  //showmessage(inttostr(endswitch));
  for i := endswitch to code.Count do
    (*Für alle Zeilne vom letzten Status bis ende des Files*)
  begin
    if i = 2091 then
      sleep(1);
    newfunc := False;
    if (pos('/*', code[i]) > 0) then
      kommentar := True;
    if (pos('{', code[i]) > 0) then
      (*Klammer auf registrieren, könnte die gescuhte funktion sein*)
    begin
      if kommentar then
      begin
        if ((pos('{', code[i]) < pos('/*', code[i])) and not
          (pos('{', code[i]) = 0)) or
          ((pos('{', code[i]) > pos('*/', code[i])) and not
          (pos('*/', code[i]) = 0)) then
        begin
          Inc(Count);
          if Count = count2 + 1 then
            j := i;
          (*Falls eine Klammer auf mehr als Klammer zu, merk dir die Zeile*)
        end;
      end
      else
      begin
        Inc(Count);
        if Count = count2 + 1 then
          j := i;
        (*Falls eine Klammer auf mehr als Klammer zu, merk dir die Zeile*)
      end;
    end;
    if pos('}', code[i]) > 0 then
      if kommentar then
      begin
        if ((pos('}', code[i]) < pos('/*', code[i])) and not
          (pos('}', code[i]) = 0)) or
          ((pos('}', code[i]) > pos('*/', code[i])) and not
          (pos('*/', code[i]) = 0)) then
        begin
          Inc(Count2);
        end;
      end
      else
      begin
        Inc(Count2);
      end;
    if (pos(statevar, code[i]) > 0) and not (pos('==', code[i]) > 0) and
      (pos('=', code[i]) > 0) and not kommentar then
      (*Wenn switch variable gefunden, dann*)
    begin
      while pos('(', code[j]) = 0 do

        (*Beweg dich solang Rückwärts bis eine Rundeklammer zu kommt (da dies die funktion bestimt)*)
        j := j - 1;
      loadfunc(newfunc, j, tmp, code);
    end;
    foo := code[i];
    l := high(changefuncs);
    //if ((i = 1543) or (i = 1545)) then
    // ShowMessage(changefuncs[l - 1].Name);
    if sametext(statevar, 'GSMData.State') then
       sleep(1);
    for k := Low(changefuncs) to high(changefuncs) do
    begin
      if (pos(changefuncs[k].Name, foo) > 0) and not newfunc and not
        kommentar then
      begin
        while (pos('(', code[j]) = 0) or (pos(');', code[j]) > 0) or
          (pos('if', code[j]) > 0) do

          (*Beweg dich solang Rückwärts bis eine Rundeklammer zu kommt (da dies die funktion bestimt)*)
          j := j - 1;
        loadfunc(newfunc, j, tmp, code);
      end;
    end;
    if (pos('*/', code[i]) > 0) then
      kommentar := False;
    if newfunc then
      Result := True;
  end;
end;
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"

Geändert von PhilmacFLy (14. Nov 2012 um 12:42 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:34 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