AGB  ·  Datenschutz  ·  Impressum  







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

Buchstabenhäufigkeit

Ein Thema von Lisa.99 · begonnen am 13. Feb 2017 · letzter Beitrag vom 6. Mär 2017
 
t.roller
(Gast)

n/a Beiträge
 
#13

AW: Buchstabenhäufigkeit

  Alt 13. Feb 2017, 16:54
Ich habe auch eine Lösung:
Es arbeitet mit der Buchstabenhäufigkeit lt. Tabelle in
Buchstabenhäufigkeit in deutschsprachigen Texten

Jeder gefundene Buchstabe wird gelöscht und verkürzt den Text, was nachfolgende Suchen beschleunigt.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids, Vcl.ExtDlgs;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Memo11: TMemo;
    Memo13: TMemo;
    Button4: TButton;
    OpenTextFileDialog1: TOpenTextFileDialog;
    Button1: TButton;
    procedure Button4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);

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

var
  Form1: TForm1;
  nextLetter : Integer;
  LOT : Integer; //Length(Memo11.text);

implementation

{$R *.dfm}

function CountChars(const subtext, Text: String): Integer;
var Text3 : String;
begin
inc(nextLetter);
Text3:= StringReplace(Text, subtext, '', [rfReplaceAll, rfIgnoreCase]);
Result := Length(Text) - Length(Text3);
Form1.Memo11.text:= Text3;
Form1.StringGrid1.Cells[0,nextLetter]:= subtext;
Form1.StringGrid1.Cells[1,nextLetter]:= INTTOSTR(Result);
Form1.StringGrid1.Cells[2,nextLetter]:= FLOATTOSTR(Result / (LOT/100));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo11.Clear; Memo13.Clear;
if OpenTextfileDialog1.Execute then
BEGIN
  Memo11.Lines.LoadFromFile(OpenTextfileDialog1.FileName);
  nextLetter:=0;
  Application.ProcessMessages;
  LOT:= Length(Memo11.text);
END;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
    StringGrid1.Cells[0,0]:= 'Buchstabe';
    StringGrid1.Cells[1,0]:= 'Häufigkeit';
    StringGrid1.Cells[2,0]:= 'Prozent';
    Memo13.Lines.Add('Memo11-Length: '+INTTOSTR(Length(Memo11.text)));
    Memo13.Lines.Add('e: '+INTTOSTR(CountChars('e',Memo11.Text)));
    Memo13.Lines.Add('n:'+INTTOSTR(CountChars('n',Memo11.Text)));
    Memo13.Lines.Add('i: '+INTTOSTR(CountChars('i',Memo11.Text)));
    Memo13.Lines.Add('s: '+INTTOSTR(CountChars('s',Memo11.Text)));
    Memo13.Lines.Add('r: '+INTTOSTR(CountChars('r',Memo11.Text)));
    Memo13.Lines.Add('a: '+INTTOSTR(CountChars('a',Memo11.Text)));
    Memo13.Lines.Add('t: '+INTTOSTR(CountChars('t',Memo11.Text)));
    Memo13.Lines.Add('d: '+INTTOSTR(CountChars('d',Memo11.Text)));
    Memo13.Lines.Add('h: '+INTTOSTR(CountChars('h',Memo11.Text)));
    Memo13.Lines.Add('u: '+INTTOSTR(CountChars('u',Memo11.Text)));
    Memo13.Lines.Add('l: '+INTTOSTR(CountChars('l',Memo11.Text)));
    Memo13.Lines.Add('c: '+INTTOSTR(CountChars('c',Memo11.Text)));
    Memo13.Lines.Add('g: '+INTTOSTR(CountChars('g',Memo11.Text)));
    Memo13.Lines.Add('m: '+INTTOSTR(CountChars('m',Memo11.Text)));
    Memo13.Lines.Add('o: '+INTTOSTR(CountChars('o',Memo11.Text)));
    Memo13.Lines.Add('b: '+INTTOSTR(CountChars('b',Memo11.Text)));
    Memo13.Lines.Add('w: '+INTTOSTR(CountChars('w',Memo11.Text)));
    Memo13.Lines.Add('f: '+INTTOSTR(CountChars('f',Memo11.Text)));
    Memo13.Lines.Add('k: '+INTTOSTR(CountChars('k',Memo11.Text)));
    Memo13.Lines.Add('z: '+INTTOSTR(CountChars('z',Memo11.Text)));
    Memo13.Lines.Add('p: '+INTTOSTR(CountChars('p',Memo11.Text)));
    Memo13.Lines.Add('v: '+INTTOSTR(CountChars('v',Memo11.Text)));
    Memo13.Lines.Add('ß: '+INTTOSTR(CountChars('ß',Memo11.Text)));
    Memo13.Lines.Add('j: '+INTTOSTR(CountChars('j',Memo11.Text)));
    Memo13.Lines.Add('y: '+INTTOSTR(CountChars('y',Memo11.Text)));
    Memo13.Lines.Add('x: '+INTTOSTR(CountChars('x',Memo11.Text)));
    Memo13.Lines.Add('q: '+INTTOSTR(CountChars('q',Memo11.Text)));
    Memo13.Lines.Add('ä: '+INTTOSTR(CountChars('ä',Memo11.Text)));
    Memo13.Lines.Add('ö: '+INTTOSTR(CountChars('ö',Memo11.Text)));
    Memo13.Lines.Add('ü: '+INTTOSTR(CountChars('ü',Memo11.Text)));
    Memo13.Lines.Add('0: '+INTTOSTR(CountChars('0',Memo11.Text)));
    Memo13.Lines.Add('1: '+INTTOSTR(CountChars('1',Memo11.Text)));
    Memo13.Lines.Add('2: '+INTTOSTR(CountChars('2',Memo11.Text)));
    Memo13.Lines.Add('3: '+INTTOSTR(CountChars('3',Memo11.Text)));
    Memo13.Lines.Add('4: '+INTTOSTR(CountChars('4',Memo11.Text)));
    Memo13.Lines.Add('5: '+INTTOSTR(CountChars('5',Memo11.Text)));
    Memo13.Lines.Add('6: '+INTTOSTR(CountChars('6',Memo11.Text)));
    Memo13.Lines.Add('7: '+INTTOSTR(CountChars('7',Memo11.Text)));
    Memo13.Lines.Add('8: '+INTTOSTR(CountChars('8',Memo11.Text)));
    Memo13.Lines.Add('9: '+INTTOSTR(CountChars('9',Memo11.Text)));
    Memo13.Lines.Add('Memo11-Length: '+INTTOSTR(Length(Memo11.text)));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  nextLetter:=0;
  Memo11.Lines.LoadFromFile('F:\schtasks.txt');
  Application.ProcessMessages;
  LOT:= Length(Memo11.text);
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var s: string;
begin
  s := StringGrid1.Cells[ACol, ARow];
  StringGrid1.Canvas.FillRect(Rect);
  DrawText(StringGrid1.Canvas.Handle, PChar(s), Length(s), Rect,
  DT_SINGLELINE or DT_Center or DT_VCENTER); // Text zentrieren
end;

end.
Angehängte Grafiken
Dateityp: jpg BSH-01.jpg (74,5 KB, 28x aufgerufen)

Geändert von t.roller (13. Feb 2017 um 17:04 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 10:55 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