AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi entwickeltes boyer-moore program läuft nich
Thema durchsuchen
Ansicht
Themen-Optionen

entwickeltes boyer-moore program läuft nich

Ein Thema von Görly · begonnen am 7. Apr 2008 · letzter Beitrag vom 9. Apr 2008
 
Görly

Registriert seit: 5. Apr 2008
29 Beiträge
 
Delphi 7 Enterprise
 
#1

entwickeltes boyer-moore program läuft nich

  Alt 7. Apr 2008, 19:02
hey, nun hab ich mich ja lang genug mit dem kmp algo rumgeschlagen das er endlich annähernd vorführbereit ist. jetz gehts an den boyer-moore algo. ich habe mal ein wenig rumprobiert und bin besher so weit gekommen:
Delphi-Quellcode:
interface

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

type
  TForm1 = class(TForm)
    bt_neu: TButton;
    bt_ende: TButton;
    Memo1: TMemo;
    Label1: TLabel;
    ed_suche: TEdit;
    Label2: TLabel;
    bt_start: TButton;
    bt_text: TButton;
    Label3: TLabel;
    Memo2: TMemo;
    procedure bt_endeClick(Sender: TObject);
    procedure bt_neuClick(Sender: TObject);
    //function BMsearch(Pat, Txt :string) : Longint;
    procedure bt_startClick(Sender: TObject);
    procedure bt_textClick(Sender: TObject);
 // procedure bt_textClick(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.bt_endeClick(Sender: TObject);
begin
close;
end;

procedure TForm1.bt_neuClick(Sender: TObject);
begin
memo1.clear;
memo2.Clear;
ed_suche.clear;
end;


                 //wort ,text
function BMsearch(Pat, Txt :string) : Longint;

 var Postable: array[0..255] of longint;
    Patlen : Longint; //länge des suchstrings
    txtlen : Longint; //gesamte länge text(anzahl der zeichen)
    index : longint; //um das was sich verschiebt
    patindex : Longint; //wort das gesucht wurde
    position : longint; //derzeitige position
    b : Byte; // Zähler das zeichenanzahl nicht überschritten wird
                           //aus array 255
     y : Boolean; //gesuchtes wort gefunden
     x : integer;
begin
  if pat = 'then
  begin
     BMsearch := 0;
     exit;
  end;
  x :=0; // kein wort gefunden da Anfang
  Patlen := Length(Pat);
  Txtlen := Length(txt);

  for b := 0 to 255 do
      postable[b] := -1;
      for patindex := 1 to Patlen do
          Postable[ord(Pat[Patindex])] := Patindex;

  index := 0;




  while (patindex > 0) and (index <= txtlen - patlen) do
    begin

       Patindex := Patlen;
         while (Pat[Patindex] = txt[index + Patindex]) and
              (patindex > 0) do
            //gefunden ergibt sich aus true
  if (Pat[Patindex] = txt[index + Patindex]) and (patindex > 0) then y := true;
     if y = true then x + 1;

          begin Dec(Patindex);
           if Patindex >0 then
              begin
              position := Postable[ord(txt[index + patindex])];


                if position = -1 then inc(index,Patindex)
                else if Position > Patindex then inc (index,1)
                else inc(index,patindex - Position);
              end;

        end;


  if Patindex =0 then BMsearch := index +1 else BMsearch :=0;


  end;
  end;



procedure TForm1.bt_startClick(Sender: TObject);

var
pat,txt : string;
begin
 BMsearch(Pat, Txt); // Zugriff auf Schleife

end;



procedure TForm1.bt_textClick(Sender: TObject);
begin
 memo1.lines.add
('hallo, wie geht es dir?');
end;

end.
könntet ihr mal drüberschaun und eventuell meinen fehler finden bzw. mir sagen das selbst der ansatz faltsch ist ?
ich habe soweit eigentlich nur noch ein problem mit der ausgabe. ich weis nicht wie ich die mache.

danke euch
greetz görly

[edit=SirThornberry]code-tags durch delphi-tags ersetzt - Mfg, SirThornberry[/edit]
Remo
  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 11:11 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