Autor Beitrag
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 02.03.06 01:17 
hallo dirthy, das wäre deine funktion berechne key.
Darth Sitthiander
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95



BeitragVerfasst: Do 02.03.06 18:56 
Also sorry aber das einzige was er bei mir jetzt macht ist, dass er die datei doppelt speichert. kann mir einer sagen wie ich es schaffen kann, das er die datei als txt speichert und ich sie dann direkt öffnen kann, ohne erst noch den editor angeben zu müssen? Ich habe filter drinnen, aber die nützen irgendwie nix.
edit: ich habs! statt:
Memo1.lines.SaveToFile(savedialog1.FileName);
muss da stehen:
Memo1.lines.SaveToFile(savedialog1.FileName+'.txt');
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 05.03.06 14:11 
tja, hat mich mal interessiert... deswegen hab ich es schnell mal nachprogrammiert. hier der quelltext:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
unit uKeyGen;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, inifiles, StdCtrls, Spin, Buttons;

type
  TForm5 = class(TForm)
    msg: TPanel;
    bbGen: TBitBtn;
    cbAlpha: TCheckBox;
    cbZiffer: TCheckBox;
    cbSonder: TCheckBox;
    GroupBox1: TGroupBox;
    seLaenge: TSpinEdit;
    GroupBox2: TGroupBox;
    cbCaseSensitive: TCheckBox;
    lbKeys: TListBox;
    GroupBox3: TGroupBox;
    bbSave: TBitBtn;
    SaveDialog: TSaveDialog;
    procedure bbSaveClick(Sender: TObject);
    procedure bbGenClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    ini: tIniFile;
    procedure ReadIni;
    procedure WriteAndFreeIni;
    function CreateKeyString(Alpha, ziffern, sonder, CaseSensitive: boolean): string;
    function Keys(Zeichen: string; Laenge: integer): string;
  public
    { Public-Deklarationen }
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.bbGenClick(Sender: TObject);
var
 SchlueselString: string;
  i: Integer;
begin
 SchlueselString := CreateKeyString(cbAlpha.Checked,
                                    cbZiffer.Checked,
                                    cbSonder.Checked,
                                    cbCaseSensitive.Checked);

 lbKeys.Clear; bbSave.Enabled := false;
 for i := 1 to 20 do
  lbKeys.Items.Add(Keys(SchlueselString, seLaenge.Value));

 bbSave.Enabled := true;
end;

procedure TForm5.bbSaveClick(Sender: TObject);
var
 fileName: string;
 i: Integer;
 f: textfile;
begin
 saveDialog.Execute;
 FileName := savedialog.FileName;
 assignfile(f, filename);
 if fileexists(Filename) then
  system.append(f)
 else
  system.rewrite(f);
 for i := 0 to lbKeys.Count - 1 do
  writeln(f, lbKeys.Items[i]);
 system.close(f);
end;

function TForm5.CreateKeyString(Alpha, ziffern, sonder,
  CaseSensitive: boolean): string;
begin
 result := '';
 if alpha then
  result := 'abcdefghijklmnopqrstuvwxzy';
 if CaseSensitive then
  result := result + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
 if Ziffern then
  result := result + '0123456789';
 if Sonder then
  result := result + '.,-_:;!$%&/()=?';
end;

procedure TForm5.FormCreate(Sender: TObject);
begin
 msg.Caption := '';
 lbKeys.Clear;
 randomize;
 ReadIni;
 bbSave.Enabled := false;
end;

procedure TForm5.ReadIni;
var
 IniName: String;
begin
 IniName := copy(paramstr(0),1,length(paramstr(0))-3)+'INI';
 ini := tInifile.Create(IniName);
 cbAlpha.Checked         := ini.ReadBool(   'Param''Alpha',         true);
 cbZiffer.Checked        := ini.ReadBool(   'Param''Ziffer',        false);
 cbSonder.Checked        := ini.ReadBool(   'Param''Sonder',        false);
 cbCaseSensitive.Checked := ini.ReadBool(   'Param''CaseSensitive', false);
 seLaenge.Value          := ini.ReadInteger('Param''Laenge',        6);
end;

procedure TForm5.WriteAndFreeIni;
begin
 ini.WriteBool(   'Param''Alpha',         cbAlpha.Checked);
 ini.WriteBool(   'Param''Ziffer',        cbZiffer.Checked);
 ini.WriteBool(   'Param''Sonder',        cbSonder.Checked);
 ini.WriteBool(   'Param''CaseSensitive', cbCaseSensitive.Checked);
 ini.WriteInteger('Param''Laenge',        seLaenge.Value);
 ini.Free;
end;

procedure TForm5.FormDestroy(Sender: TObject);
begin
 WriteAndFreeIni;
end;

function TForm5.Keys(Zeichen: string; Laenge: integer): string;
var
  i: Integer;
begin
 result := '';
 for i := 1 to Laenge do
 begin
  result := result + zeichen[random(length(zeichen))+1];
 end;
end;

end.
Einloggen, um Attachments anzusehen!
Darth Sitthiander
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95



BeitragVerfasst: So 05.03.06 16:53 
Cool! Aber die Sonderzeichen würd ich rausnehmen. Und auch ein paar andere funktionen.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: So 05.03.06 17:22 
auch als funktion, prozedur wie auch immer
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 05.03.06 17:53 
user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
auch als funktion, prozedur wie auch immer

????? :nixweiss: kann mir das mal einer auf deutsch übersetzten. ich komm da nicht ganz mit.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: So 05.03.06 18:09 
das heißt so viel wie "guck dir das anfänger tutorial von christian an"
Larus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 431



BeitragVerfasst: Fr 10.03.06 20:14 
für die ascii tabellen braucht man keine formelsammlung...
ein normaler Freak weiß auch auswendig wo Zahlen klein- und Großbuchstaben anfangen :P
zemy
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 207

Win XP Prof.
D7
BeitragVerfasst: Sa 11.03.06 19:53 
Ich kann mir das nie merken... Hab da eigentlich immer ne Exe daliegen, die mir den entsprechenden Code der Taste ausgiebt, die ich gerade gedrückt habe.... Vieleicht nicht unbedingt wegen A-Z usw, eher wegen den Steuerzeichen (Cursor, Backspace, Leertaste, etc.)

MfG

_________________
LifeIsToShortToThinkAboutTheShortness