AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Kundennummer aus Buchstaben und Zahlen erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Kundennummer aus Buchstaben und Zahlen erstellen

Ein Thema von Voltzi · begonnen am 9. Jun 2005 · letzter Beitrag vom 9. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
Voltzi

Registriert seit: 9. Mär 2004
22 Beiträge
 
#1

Kundennummer aus Buchstaben und Zahlen erstellen

  Alt 9. Jun 2005, 10:16
Hi Leute!

Ich habe folgendes Problem. Ich muss eine fortlaufende Kundennummer aus Buchstaben und Zahlen erstellen. Ich habe mir das so gedacht, dass ich mit der Kundennummer A001 anfange, dann weiter mit A002 bis Z999 gehe. Danach soll es weiter mit AA001, AA002 bis ZZ999 gehen.

Nun weiß ich leider nicht, wie ich das per Quellcode realisieren soll. Kann mir jemand helfen?

MfG
Voltzi
Solange mein Chef so tut, als würde er mich richtig bezahlen, solange tue ich so, als würde ich richtig arbeiten.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Kundennummer aus Buchstaben und Zahlen erstellen

  Alt 9. Jun 2005, 10:33
Wie lernt man in der Schule zu addieren?
Code:
1. Von rechts anfangen. (i=1)
2. Wenn i> Länge(Nummer) dann
     Hänge ein 'A' vorne an die Nummer an
   Sonst Wenn Nummer[i]=höchste Ziffer dann
     Nummer[i] := Kleinste Ziffer
     inc (i)
     Wiederhole Schritt 2
   sonst
     inc (Nummer[i])
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Voltzi

Registriert seit: 9. Mär 2004
22 Beiträge
 
#3

Re: Kundennummer aus Buchstaben und Zahlen erstellen

  Alt 9. Jun 2005, 10:42
Danke für deine Hilfe. Hat sich aber schon erledigt.

MfG
Voltzi
Solange mein Chef so tut, als würde er mich richtig bezahlen, solange tue ich so, als würde ich richtig arbeiten.
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#4

Re: Kundennummer aus Buchstaben und Zahlen erstellen

  Alt 9. Jun 2005, 10:48
du solltest dir jedenfalls überlegen ob das günstig ist fürs sortieren!

Code:
a001
a002
b001
b002
aa001
aa002
bb001
ab001
wird aufsteigend sortiert zu
Code:
a001
a002
aa001
aa002
ab001
b001
b002
bb001
  Mit Zitat antworten Zitat
Benutzerbild von Catbytes
Catbytes

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

Re: Kundennummer aus Buchstaben und Zahlen erstellen

  Alt 9. Jun 2005, 11:05
Hallo,

in der Regel macht man das per "K" (Kreditor) oder "D" (Debitor).

Also z.B. K123456 oder D546765

So kann man gleich anhand des Buchstabens erkennen, ob es ein Kunde oder Lieferant ist.

Wenn nur Nummern gewünscht sind, ist der Kunde meist 1,2,3,4,5,6 und der Lieferant >6.

Also Kunde = 123456
Lieferant = 789101
Catbytes
  Mit Zitat antworten Zitat
marabu

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

Re: Kundennummer aus Buchstaben und Zahlen erstellen

  Alt 9. Jun 2005, 11:18
Hallo Voltzi,

mit einem so vorbildlich formulierten Titel für einen thread lohnt sich später auch die Suchfunktion.

Die Schlüssel AA001 .. ZZ999 ergeben einen Schlüsselvorrat von 26 * 26 * 1000 - 1 Schlüsseln. Hier eine Abbildungsfunktion:

Delphi-Quellcode:
function CompoundKey(iKey: cardinal; iDigits: integer): string;
var
  i, iRange: cardinal;
begin
  iRange := 10;
  for i := 2 to iDigits do
    iRange := iRange * 10;
  Result := IntToStr(iKey mod iRange);
  while Length(Result) < iDigits do
    Result := '0' + Result;
  iKey := iKey div iRange;
  Result := Chr(iKey mod 26 + Ord('A')) + Result;
  iKey := iKey div 26;
  Result := Chr(iKey mod 26 + Ord('A')) + Result;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Kundennummer aus Buchstaben und Zahlen erstellen

  Alt 9. Jun 2005, 11:33
Ab jetzt wird geklugscheissert:
Volzi wollte 'A001'..'Z999','AA000','ZZ999' und nicht 'AA001'..'ZZ999'
@marabu: 6! Setzen! Nachsitzen!

Nee, im Ernst: Ich bevorzuge auch Nummern mit konstanter Länge, insofern ist deine Abbildung natürlich ok.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
marabu

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

Re: Kundennummer aus Buchstaben und Zahlen erstellen

  Alt 9. Jun 2005, 12:11
Hallo alzaimar,

ich habe meinen Code bewusst nicht an die Anforderung von Voltzi angepasst, weil ich auf die Macht des Faktischen zählen wollte. Durch Hinzunahme des Schlüsselbereichs A001 .. Z999 vergrößert man ohne Zweifel den Schlüsselvorrat, aber die von dir und anderen betonten Nachteile überwiegen doch bei weitem. Ich würde dann wohl eher zu AAA001 .. ZZZ999 greifen. Aber wer kennt schon die genauen Anforderungen? Nur als technische Spielerei - eine kleine Änderung der letzten Zeile:

Delphi-Quellcode:
if iKey > 0 then
  Result := Chr(Pred(iKey) mod 26 + Ord('A')) + Result;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
BKempf

Registriert seit: 1. Jun 2004
103 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Kundennummer aus Buchstaben und Zahlen erstellen

  Alt 9. Jun 2005, 12:31
Wenn die Reihenfolge "erst einige Buchstaben, danach Ziffern" nicht unbedingt notwendig ist, genügen sechs Hex-Ziffern für einen Schlüsselvorrat von 16^6 =~ 16 Mio., und außerdem werden "politisch sensible" Buchstabenkombinationen verhindert.
The problem with troubleshooting is that sometimes the trouble shoots back.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Kundennummer aus Buchstaben und Zahlen erstellen

  Alt 9. Jun 2005, 13:17
@marabu: Nee, is schon klar, aber manchmal will man einfach mal seinen Senf hinzugeben.
@BKempf: Ich weiss nich, ob man sich darüber noch Gedanken machen sollte. Dann dürfte ja auch die Funkzentrale, die ich gerade programmiere, politisch unsensibel sein. Und Wasser erst recht (Hupsa! nicht rechts!). Buchstabensalatkundennummern sind ohnehin Unsinn. Wer will schon FUK007 heissen. Und mit HEX-Zahlen ginge das auch: FAC007 . Dessenungeachtet will ich die Firma sehen, die 16. Mio Kunden ihr eigen nennt und sich nicht mal 8 stellige numerische Kundennummern leisten will/kann.
Aber, da kommt man vom Hundersten ins Tausendste: Will ich als Kunde die Nr. 69 (obwohl meine Frau nicht drauf steht?) oder die 666, obwohl ich Muslime bin? Dann stell ich mich lieber naiv (oder vernünftig, je nach Sichtweise) und beanspruche die Gnade der späten Geburt sowie Scheuklappen für mich.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:14 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