AGB  ·  Datenschutz  ·  Impressum  







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

Unverständlicher Fehler

Ein Thema von jakobwak · begonnen am 12. Jan 2006 · letzter Beitrag vom 12. Jan 2006
Antwort Antwort
jakobwak

Registriert seit: 12. Jan 2006
1 Beiträge
 
#1

Unverständlicher Fehler

  Alt 12. Jan 2006, 17:23
Hi,

verstehe nicht warum das Programm nicht funktioniert. Soll eigentlich ein dynamisches Wort-Erkennunsprogramm als Automat werden.Habe sogar gehört dass das überhaupt nicht geht, will es aber mal versuchen. Die Laufzeit lässt sich auch starten, aber immer wenn ich auf einen Button klicke, kommt folgender Fehlerebugger Exception Notification
Project Project1.exe raised exception class EAcessViolation with message 'AcessViolation at adress 00403E4C in module 'project1.exe'. Read of adress 00000004'. Process stopped. Use Step or Run to continue.

Quelltext des Programms(ist noch nicht fertig,z.b. Endzustand muss noch definiert werden):
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button3: TButton;
    Label3: TLabel;
    Edit1: TEdit;
    Label5: TLabel;
    Button4: TButton;
    Label1: TLabel;
    Edit2: TEdit;
    Button1: TButton;
    Label2: TLabel;
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

    function f(zustand: integer; x:string):integer;
    function g(zustand: integer; x:string):string;
var
  Form1: TForm1;
  zustand,folgezustand,len,len2: integer;
  eingabe: string;
  zeichen: array of string;

implementation

{$R *.dfm}

function f(zustand:integer; x:string):integer;
begin
Case zustand of
  0:if x=zeichen[1] then f:=1
      else f:=0;
  1:if x=zeichen[2] then f:=2
      else f:=0;
  2:if x=zeichen[3] then f:=3
      else f:=0;
  3:if x=zeichen[4] then f:=4
      else f:=0;
  4:if x=zeichen[5] then f:=5
      else f:=0;
  5:if x=zeichen[6] then f:=6
      else f:=0;
  6:if x=zeichen[7] then f:=6
      else f:=0;
  end;
end;



function g(zustand:integer; x:string):string;
begin
Case zustand of
  0:g:='Zustand: Startzustand 0';
  1:g:='Zustand: 1';
  2:g:='Zustand: 2';
  3:g:='Zustand: 3';
  4:g:='Zustand: 4';
  5:g:='Zustand: 5';
end;
end;


procedure TForm1.Button3Click(Sender: TObject);
begin
    label1.caption:='';
    label3.caption:='Zustand: Startzustand z0';
    Edit1.text:='';
    zustand:=0;
end;

procedure TForm1.Button4Click(Sender: TObject);
var i:integer;
begin
  len:=length(Edit1.Text);
  zustand:=0;
  eingabe:=Edit1.Text;
  for i:= 1 to len do
    begin
    eingabe:=Copy(Edit1.Text,i,1);
    folgezustand:=f(zustand,eingabe);
    zustand:=folgezustand;
    label3.caption:=g(zustand,eingabe);
    end;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key < 'a') or (Key > 'z') then
    begin
    key:=Chr(27);
    ShowMessage('Bitte geben sie einen Buchstaben von a bis z oder ein @-Zeichen ein')
    end;
end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if (key < 'a') or (Key > 'z') then
    begin
    key:=Chr(27);
    ShowMessage('Bitte geben sie einen Buchstaben von a bis z oder ein @-Zeichen ein')
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var j:integer;
begin
len2:=length(Edit2.Text);
for j:= 1 to len2 do
begin
zeichen[j]:=Copy(Edit2.Text,j,1)
end;
end;

end.
mfg
  Mit Zitat antworten Zitat
Benutzerbild von zer00
zer00

Registriert seit: 7. Okt 2003
95 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Unverständlicher Fehler

  Alt 12. Jan 2006, 17:38
Hi

Wo, gibst Du die Grösse des Arrays zeichen an?
So sollte es gehen:

Delphi-Quellcode:
var zeichen: Array of string;

procedure foo;
begin
        setLength(zeichen,1);
        etc...
end;

grz zer00
sei kühn, sei immer kühn, sei nicht zu kühn
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:37 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