![]() |
AW: Buchstabenhäufigkeit
Das ist keine Char-Table sondern eine Count-Table. also am Position $31 wir das Vorkommen von "1" gezählt.
Gruß K-H |
AW: Buchstabenhäufigkeit
Danke für eure schnellen Antworten.
Verstehe leider viele Quelltexte nicht. In der Schule lernen wir nur wenig und es kann passieren, dass ich das erklären muss. Will auch verstehen, wieso ich das so machen muss. Wie bekomme ich es hin, mein string grid auf null zu setzen? Bin ein Mädchen :-D |
AW: Buchstabenhäufigkeit
Dann frag, was du nicht verstehst.
Zu deiner Frage: In dem du 0 in die betreffende Zelle schreibst? |
AW: Buchstabenhäufigkeit
Zitat:
Delphi-Quellcode:
procedure TForm1.ButtonClick(Sender: TObject);
var I: Integer; begin for I := 0 to StringGrid1.RowCount - 1 do StringGrid1.Rows[I].Clear(); end; |
AW: Buchstabenhäufigkeit
Danke! Das mit der Prozedur werde ich dann mal versuchen.
Ich muss ja, wenn ich die Prozente der einzelnen Buchstaben berechnen muss eine Schleife nutzen. Das habe ich ja auch in meinem Quelltext schon versucht! Mein Problem ist, dass ich nicht weiß, wie die Schleife direkt auszusehen hat. Das was bei mir grün ist, ist meine versuchte Schleife. Wenn ich diese aber durchlaufe, dann sagt er mir, dass er das nicht berechnen kann. Was ist daran der Fehler? |
AW: Buchstabenhäufigkeit
Die genaue Fehlermeldung wäre jetzt hilfreich.
|
AW: Buchstabenhäufigkeit
Wenn's nur um das grüne geht, da zählst du zu weit:
for j1 := 1 to StringGrid1.RowCount-1 do |
AW: Buchstabenhäufigkeit
Dankeschön. Kann es leider erst am Montag wieder ausprobieren. Ich versuche das mal und wenn dann immer noch eine Fehlermeldung kommen sollte, dann werde ich sie euch schreiben. Danke habt mir aber schon sehr geholfen :-D
|
AW: Buchstabenhäufigkeit
Liste der Anhänge anzeigen (Anzahl: 3)
Aus Spass neue Version gemacht:
Delphi-Quellcode:
unit Unit1; //20170213
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, Winapi.MMSystem, Vcl.ExtCtrls; type TForm1 = class(TForm) StringGrid1: TStringGrid; Memo11: TMemo; OpenTextFileDialog1: TOpenTextFileDialog; bnOpenTextfileDialog: TButton; bnCLEAR: TButton; Edit1: TEdit; bnRUN: TButton; bnCLOSE: TButton; procedure FormCreate(Sender: TObject); procedure bnOpenTextfileDialogClick(Sender: TObject); procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); procedure bnCLEARClick(Sender: TObject); procedure bnRUNClick(Sender: TObject); procedure bnCLOSEClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; cArray = array of ANSIchar; var Form1: TForm1; nextLetter : Integer; LOT : Integer; CA : cArray; implementation {$R *.dfm} function StrToCharArray(s: ANSIstring): cArray; var x: integer; begin setlength(result,length(s)); for x:=length(s) downto 1 do result[x-1]:=s[x]; end; function RemoveChars(const str: string; const ch: ANSIchar): string; var i, Count: Integer; InvalidChars : set of ANSIChar; begin InvalidChars := [ch, UPCASE(ch)]; SetLength(Result, Length(str)); Count := 0; for i := 1 to Length(str) do if not (str[i] in InvalidChars) then begin inc(Count); Result[Count] := str[i]; end; SetLength(Result, Count); end; //------------------------------------------------------------------------------ procedure TForm1.bnCLEARClick(Sender: TObject); var I: Integer; begin for I := 0 to StringGrid1.RowCount - 1 do StringGrid1.Rows[I].Clear(); end; procedure TForm1.bnCLOSEClick(Sender: TObject); begin Application.Terminate; end; procedure TForm1.bnRUNClick(Sender: TObject); var Text3 : String; iResult, iText, I : Integer; Ticks: DWord; Res, Proz : Single; begin StringGrid1.Cells[0,0]:= 'Buchstabe'; StringGrid1.Cells[1,0]:= 'Häufigkeit'; StringGrid1.Cells[2,0]:= 'Prozent'; Ticks := timeGetTime; for I := Low(CA) to High(CA) do BEGIN iText:= Length(Memo11.Text); inc(nextLetter); Text3:= RemoveChars(Memo11.text, CA[I]); Application.ProcessMessages; iResult := iText - Length(Text3); Memo11.text:= Text3; StringGrid1.Cells[0,nextLetter]:= CA[I]; StringGrid1.Cells[1,nextLetter]:= INTTOSTR(iResult); Proz:= iResult / (LOT/100); StringGrid1.Cells[2,nextLetter]:= Format(' %.3f %',[Proz]); END; Res := 0.001 * (timeGetTime - Ticks); Edit1.Text:= Format('Time for creating : '+' %.3f sec',[Res]); end; procedure TForm1.bnOpenTextfileDialogClick(Sender: TObject); begin Memo11.Clear; bnCLEAR.Click; if OpenTextfileDialog1.Execute then BEGIN Memo11.Lines.LoadFromFile(OpenTextfileDialog1.FileName); nextLetter:=0; Application.ProcessMessages; LOT:= Length(Memo11.text); END; end; procedure TForm1.FormCreate(Sender: TObject); begin Height:= Screen.Height-40; nextLetter:=0; Memo11.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+'\schtasks.txt'); Application.ProcessMessages; LOT:= Length(Memo11.text); CA:= StrToCharArray('enisratdhulcgmobwfkzpvßjyxqäöü0123456789'); //40 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); end; end. |
AW: Buchstabenhäufigkeit
Liste der Anhänge anzeigen (Anzahl: 1)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:15 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