![]() |
Re: zählen mit buchstaben?
Deswegen denke ich auch , am logischsten ist es ähnlich wie beim Hex-System '0' bis '9' und 'A' bis 'Z' zu verwenden, wie in meinem Beispiel weiter oben. Dann hat A den Dezimalwert 10 und Z den Dezimalwert 35.
'A' + 'Z' ergibt '19', während '1' + 'Z' zusammen '10' ist. |
Re: zählen mit buchstaben?
Hallo Christian Seehase,
Zitat:
|
Re: zählen mit buchstaben?
hoi^^
Zitat:
ok machen wirs mal anders.... sagen wir das 26(Z) = 0 ist dann wäre y+y = 50, also ergibt das AX falls jemand fragt wieso "AX"... bei Y+A wäre das ergebnis AZ (z steht für 0, A für 1) ich brauch das ganze nur einmalig für ein prog das mir eine textdatei generiert in der alle Buchstaben kombinationen (4stellen lang) vorhanden sind dazu muss das prog immer so in die datei schreiben: AAAA AAAB AAAC ... AAAY AABA AABB usw, das möchte ich gerne hinkriegen, hat jemand dafür eine idee? danke nochmal an die angehängten codes und progs ;) |
Re: zählen mit buchstaben?
Moin Silent,
an anderer Stelle hatten Himitsu und ich Dir jeweils einen kompletten Source für so eine Routine gepostet. Nimm doch die. |
Re: zählen mit buchstaben?
stimmt, sorry
dein code guck ich mir nochmal genauer an, himitsus versteh ich nicht ganz, soviele schleifen |
Re: zählen mit buchstaben?
Na, dann so:
Delphi-Quellcode:
function LongPowerLong(ABaseNum, AExponent : Word) : LongWord;
var MultCount : Integer; begin Result := 1; for MultCount := 1 to AExponent do Result := Result * ABaseNum; end; const AlphaBase = 26; AlphaMax = 4; function AlphaToNum(ATNstr : String ) : LongWord; const ValidChars : set of Char = ['A'..'Z']; var ACount : Integer; function CharNum(CNchr : Char) : Byte; begin Case Ord(UpCase(CNchr)) Of 65..90: CharNum := Ord(UpCase(CNchr)) - 65; end; end; begin AlphaToNum := 0; for ACount := 1 to Min(length(ATNstr), AlphaMax+1) do begin If not (UpCase(ATNstr[ACount]) in ValidChars) then begin result := 0; Break; end; result := result + (CharNum(ATNstr[ACount]) * LongPowerLong(AlphaBase, Min(length(ATNstr), AlphaMax+1) - ACount)); end; end; function NumToAlpha(NTAnum : LongWord ) : String; var NumChar : array[0..AlphaBase-1] Of Char; NumCount : Word; begin for NumCount := 0 to (AlphaBase-1) do NumChar[NumCount] := Chr(65 + NumCount); // max 26 hoch (5-1) result := ''; for NumCount := (AlphaMax+1) downto 1 do If (NTAnum < LongPowerLong(AlphaBase, NumCount)) then begin If not (NumCount = (AlphaMax+1)) then result := result + NumChar[NTAnum div LongPowerLong(AlphaBase, NumCount-1)]; NTAnum := NTAnum mod LongPowerLong(AlphaBase, NumCount-1); end; end;
Delphi-Quellcode:
Macht 456976 Möglichkeiten * 6 Bytes (#13#10 dabei) = 2741856 Bytes
var
ATextFile : TextFile; bucount : LongWord; begin AssignFile(ATextFile, 'C:\buchstab.txt'); ReWrite(ATextFile); for bucount := AlphaToNum('AAAA') to AlphaToNum('ZZZZ') do WriteLn(ATextFile, NumToAlpha(bucount)); CloseFile(ATextFile); end; |
Re: zählen mit buchstaben?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Wenn das etwas mit dem Beitrag "alle Kombinationen 00000000..ZZZZZZZZ in textfile?" zu tun hat, ist das ja sowieso beendet. Hab den Code nochmal angehängt - mit extra vielen Kommentaren. Zitat:
Delphi-Quellcode:
Function StringAddition... {von mir}
Var Datei: TextFile; S: String; S := 'AAAA'; Repeat WriteLn(Datei, S); S := StringAddition(S, 'A'); Until Length(S) > 4;
Delphi-Quellcode:
Var Datei: TextFile;
a, b, c, d: Byte; For a := 65 to 90 do For b := 65 to 90 do For c := 65 to 90 do For d := 65 to 90 do WriteLn(Datei, Chr(a) + Chr(b) + Chr(c) + Chr(d)); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 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 by Thomas Breitkreuz