AGB  ·  Datenschutz  ·  Impressum  







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

zählen mit buchstaben?

Ein Thema von Pseudemys Nelsoni · begonnen am 2. Nov 2003 · letzter Beitrag vom 2. Nov 2003
Antwort Antwort
Seite 3 von 3     123   
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#21

Re: zählen mit buchstaben?

  Alt 2. Nov 2003, 14:37
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.
  Mit Zitat antworten Zitat
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#22

Re: zählen mit buchstaben?

  Alt 2. Nov 2003, 15:51
Hallo Christian Seehase,

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.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#23

Re: zählen mit buchstaben?

  Alt 2. Nov 2003, 19:55
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
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#24

Re: zählen mit buchstaben?

  Alt 2. Nov 2003, 20:03
Moin Silent,

an anderer Stelle hatten Himitsu und ich Dir jeweils einen kompletten Source für so eine Routine gepostet.
Nimm doch die.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#25

Re: zählen mit buchstaben?

  Alt 2. Nov 2003, 20:06
stimmt, sorry

dein code guck ich mir nochmal genauer an, himitsus versteh ich nicht ganz, soviele schleifen
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#26

Re: zählen mit buchstaben?

  Alt 2. Nov 2003, 20:28
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#27

Re: zählen mit buchstaben?

  Alt 2. Nov 2003, 22:34
Zitat:
himitsus versteh ich nicht ganz, soviele schleifen
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));
Angehängte Dateien
Dateityp: exe stringaddition_213.exe (62,8 KB, 4x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 05:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz