AGB  ·  Datenschutz  ·  Impressum  







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

Zugriffsverletzung ??? Ich kappiers nicht!

Ein Thema von faux · begonnen am 13. Mai 2004 · letzter Beitrag vom 13. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

Zugriffsverletzung ??? Ich kappiers nicht!

  Alt 13. Mai 2004, 18:57
Hallo!

Also ich hab grad ein totales Blackout!
Ich kappiers nicht. Wiso tritt denn da eine Zugriffsverletzung auf?

Delphi-Quellcode:
unit Unit2;

interface

uses SysUtils, AgentObjects_TLB;

const
  LMax = 2;

type
  TCommandAction = (ccTrue, ccFalse, ccNoCommand);

function Inizialize(const Command: String; AgentItem: IAgentCtlCharacterEx): TCommandAction;
function ActCommand(Commands: Array of String; AgentItem: IAgentCtlCharacterEx): TCommandAction;

implementation

function Inizialize(const Command: String; AgentItem: IAgentCtlCharacterEx): TCommandAction;
var
  Commands: Array[1..LMax] of String;
  i, j: Integer;
begin
  j := 0;
  if Length(Command) > 0 then
  begin
    for i := 0 to Length(Command) - 1 do
      if Command[i] <> ' then
        Commands[j] := Commands[j] + Command[i]
      else
        if j < Lmax then
          inc(j)
        else
          break;
    Result := ActCommand(Commands, AgentItem);
  end
  else
    Result := ccFalse;
end;

function ActCommand(Commands: Array of String; AgentItem: IAgentCtlCharacterEx): TCommandAction;
begin
  if Commands[1][1] = ':then //Hier tritt sie auf.... hm....
  begin
    result := ccTrue;
  end
  else
    result := ccNoCommand;
end;

end.
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: Zugriffsverletzung ??? Ich kappiers nicht!

  Alt 13. Mai 2004, 19:01
Vielleicht solltest du vor dem Zugriff prüfen ob das Array überhaupt entsprechend viele Einträge hat.
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Zugriffsverletzung ??? Ich kappiers nicht!

  Alt 13. Mai 2004, 19:03
Ist der "doppelte Index" an der Stelle Absicht?

//edit:
Schlecht ausgedrückt ....

Ich vermute der String ist leer. Kann das sein?
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Zugriffsverletzung ??? Ich kappiers nicht!

  Alt 13. Mai 2004, 19:03
Ja aber der Array der übergeben wird is ja mit [1..2] deklariert, also muss das Element [1] ja verfügbar sein... ^^
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Zugriffsverletzung ??? Ich kappiers nicht!

  Alt 13. Mai 2004, 19:04
Zitat von IngoD7:
Ist der "doppelte Index" an der Stelle Absicht?
Ja, weil ich auf das erste Zeichen des Strings zugreifen will, aber ohne dem Doppelarray also mitCommands[1] gehts genau so wenig...
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#6

Re: Zugriffsverletzung ??? Ich kappiers nicht!

  Alt 13. Mai 2004, 19:04
witzbold!

du versuchst einen eindimenionalen array zweidimensional anzusprechen!
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Zugriffsverletzung ??? Ich kappiers nicht!

  Alt 13. Mai 2004, 19:05
Zitat von glkbkk:
witzbold!

du versuchst einen eindimenionalen array zweidimensional anzusprechen!
Nein, er versucht auf das erste Zeichen im String der ersten Array-Stelle zuzugreifen
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Zugriffsverletzung ??? Ich kappiers nicht!

  Alt 13. Mai 2004, 19:05
Zitat von glkbkk:
witzbold!

du versuchst einen eindimenionalen array zweidimensional anzusprechen!
nein, einen zweidimensionalen array würde man mit [1,1] ansprechen...
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Zugriffsverletzung ??? Ich kappiers nicht!

  Alt 13. Mai 2004, 19:08
Die Fehlermeldung lautet übrigens so:

Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00473B03 in Modul 'Project1.exe'. Lesen von Adresse 00000000'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK
---------------------------
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#10

Re: Zugriffsverletzung ??? Ich kappiers nicht!

  Alt 13. Mai 2004, 19:08
achso, aber ich weiss nict, ob das geht...
versuchs mal so:
Delphi-Quellcode:
unit Unit2;

interface

uses SysUtils, AgentObjects_TLB;

const
  LMax = 2;

type
  TCommandAction = (ccTrue, ccFalse, ccNoCommand);

function Inizialize(const Command: String; AgentItem: IAgentCtlCharacterEx): TCommandAction;
function ActCommand(Commands: Array of String; AgentItem: IAgentCtlCharacterEx): TCommandAction;

implementation

function Inizialize(const Command: String; AgentItem: IAgentCtlCharacterEx): TCommandAction;
var
  Commands: Array[1..LMax] of String;
  i, j: Integer;
begin
  j := 0;
  if Length(Command) > 0 then
  begin
    for i := 0 to Length(Command) - 1 do
      if Command[i] <> ' then
        Commands[j] := Commands[j] + Command[i]
      else
        if j < Lmax then
          inc(j)
        else
          break;
    Result := ActCommand(Commands, AgentItem);
  end
  else
    Result := ccFalse;
end;

function ActCommand(Commands: Array of String; AgentItem: IAgentCtlCharacterEx): TCommandAction;
var
hilfsstring:string;
begin
//hier die änderung!!
  hilfsstring:=Commands[1];
  if hilfsstring[1] = ':then //Hier tritt sie auf.... hm....
  begin
    result := ccTrue;
  end
  else
    result := ccNoCommand;
end;

end.
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz