AGB  ·  Datenschutz  ·  Impressum  







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

Buchstaben hochzählen

Ein Thema von Catbytes · begonnen am 25. Jul 2006 · letzter Beitrag vom 28. Jul 2006
Antwort Antwort
Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#1

Buchstaben hochzählen

  Alt 25. Jul 2006, 09:06
Hallo,

irgendwie hänge ich gerade.

Ich suche nach einer Funktion, die mir die Buchstaben "hochzählt"; also erst "A", dann "B" etc. Wenn "Z" ereicht ist, soll es mit "AA" weitergehen (so ungefähr wie in Excel).

"A"+1 geht ja nicht. Gibt es da andere Möglichkeiten?
Catbytes
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Buchstaben hochzählen

  Alt 25. Jul 2006, 09:07
Moin Catbytes,

was hältst Du von ord('A')+1 ?
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 RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Buchstaben hochzählen

  Alt 25. Jul 2006, 09:14
da im ASCII-Code die Buchstaben sinnvollerweise alle hintereinander angeordnet sind, könntest Du damit was anfangen.
"A" liegt bei dezimal 65 und "Z" bei dezimal 90.

Du kannst Dir also eine Schleife bauen, die nacheinander die ASCII-Zeichen von 65 - 90 ausgibt.

Ein klein wenig Hirnschmalz und Delphi-Hilfe und DelphiPraxis-Suche könnte Dir weiterhelfen...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Buchstaben hochzählen

  Alt 25. Jul 2006, 17:51
Zitat von Christian Seehase:
was hältst Du von ord('A')+1 ?
Einfacher gehts mit Succ('A').

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Buchstaben hochzählen

  Alt 25. Jul 2006, 19:43
Hallo Catbytes,

ich erinnere mich noch an diesen thread: Kundennummer aus Buchstaben und Zahlen erstellen - da bist auch du abgebildet.

Grüße vom marabu
  Mit Zitat antworten Zitat
Masterof

Registriert seit: 12. Feb 2004
Ort: Bad Elster
142 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Buchstaben hochzählen

  Alt 25. Jul 2006, 19:50
ich hätte es auch über die ASCII Werte gemacht
.: Meine Homepage :.
http://www.micha-hertel.de
  Mit Zitat antworten Zitat
s03

Registriert seit: 26. Jul 2006
4 Beiträge
 
#7

Re: Buchstaben hochzählen

  Alt 26. Jul 2006, 07:53
Wird vielleicht so was gesucht (?):

Delphi-Quellcode:
//NumberToLiteralNumber
function NumToLitNum(n:Int64):string;
//n=0-a,1-b,25-z,26-aa,27-ab,...
const
  cLiteralCount=26;
  function GetLiteral(z:Integer):string;
  begin
    result:=Chr(65+z);
  end;
var
  i:Integer;
begin
  result:='';
  While n>=cLiteralCount do begin
    i:=n div cLiteralCount;
    result:=GetLiteral(n-(i*cLiteralCount))+result;
    n:=i-1;
  end;
  result:=GetLiteral(n)+result;
end;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Buchstaben hochzählen

  Alt 28. Jul 2006, 07:13
Herzlich willkommen in der Delphi-PRAXiS, s03.

Dein Code funktioniert gut, allerdings würde ich ihn so implementieren:

Delphi-Quellcode:
// return Excel column name for zero based column index

function IndexToName(n: Word): String;
begin
  Result := '';
  repeat
    Result := Chr(Ord('A') + n mod 26 - Ord(Result <> '')) + Result;
    n := n div 26;
  until n = 0;
end;
Mehr als 64K Spalten erwarte ich nicht.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
s03

Registriert seit: 26. Jul 2006
4 Beiträge
 
#9

Re: Buchstaben hochzählen

  Alt 28. Jul 2006, 09:16
Hallo

Ja, sieht interessant aus . Zwar verstehe ich was da passiert, befürchte aber, dass ich selber zu solchen Kunststückchen nicht fähig bin (außer ich trimme darauf).
Was int64 betrieft, habe ich mich nicht ganz auf den Excel konzentriert. Vielleicht möchte jemand einfach eine 18 (oder 19) stellige IntZahl zu einem Buchstabensalat umwandeln. Für Excel würde in 98% der Fälle byte ausreichen. Na ja, wie dem auch sei .
Danke für den schlanken Code .
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:49 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