Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi zählen mit buchstaben? (https://www.delphipraxis.net/11210-zaehlen-mit-buchstaben.html)

scp 2. Nov 2003 14:37

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.

Dagon 2. Nov 2003 15:51

Re: zählen mit buchstaben?
 
Hallo Christian Seehase,

Zitat:

Zitat von Christian Seehase
Da man erst mit der 0 sinnvoll rechnen konnte, haben wir heute wohl auch die arabischen Ziffern, denn die Araber haben die 0 eingeführt. (Übrigens sifr ist das arabische Wort für 0, aus dem dann bei uns das Wort Ziffer geworden ist).

Das stimmt so auch nicht ganz. Die Inder waren die Erfinder der Null (so wie wir sie heute kennen). Die Araber haben sie lediglich übernommen. :P :wink:

Pseudemys Nelsoni 2. Nov 2003 19:55

Re: zählen mit buchstaben?
 
hoi^^

Zitat:

@silent: Das würde bedeuten, das Z + Z = B ist, da Z = 26 -> 26 + 26 = 52. Und 52 = 2*26^1 und 2 = B.
kann ja garnicht, B ist ja 2, da kann Z(26) +Z ja nicht auch 2 sein ^^...

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 ;)

Christian Seehase 2. Nov 2003 20:03

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.

Pseudemys Nelsoni 2. Nov 2003 20:06

Re: zählen mit buchstaben?
 
stimmt, sorry

dein code guck ich mir nochmal genauer an, himitsus versteh ich nicht ganz, soviele schleifen

scp 2. Nov 2003 20:28

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:
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;
Macht 456976 Möglichkeiten * 6 Bytes (#13#10 dabei) = 2741856 Bytes

himitsu 2. Nov 2003 22:34

Re: zählen mit buchstaben?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

himitsus versteh ich nicht ganz, soviele schleifen
:gruebel: ist doch nur EINE Schleife, die anderen Beiden (1. & 2. Schleife) sind nur zur Kontrolle ob ungültige Zeichen (nicht im Bereich "A" bis "Z") vorhanden sind.

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:

ich brauch das ganze nur einmalig für ein prog das mir eine textdatei generiert in der alle Buchstaben kombinationen (4stellen lang) vorhanden sind
Die beiden folgenden Sources machen das Gleiche - Und erstellen das: AAAA, AAAB, AAAC ... ZZZZ
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.
Seite 3 von 3     123   

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