Excel Spaltenbezeichung in Zahl [ERLEDIGT}

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Excel Spaltenbezeichung in Zahl [ERLEDIGT}

Beitrag von Koverhage »

Habe dazu folgendes im Netz gefunden.
Eine Pow function gibt es in Xbase++ nicht (habe ich jedenfalls nicht gefunden)
Wie kann ich die letzte Zeile in Xbase++ umsetzen ?

sum=0;

Code: Alles auswählen

len=length(letters);
for(i=0;i<len;i++)
  sum += ((letters[len-i-1])-'A'+1) * pow(26,i);
Zuletzt geändert von Koverhage am Fr, 13. Mär 2020 11:53, insgesamt 1-mal geändert.
Gruß
Klaus
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Excel Spaltenbezeichung in Zahl

Beitrag von ramses »

Hallo Klaus

die Pow() Funktion unter xbase geht ganz einfach z.B:

a := 8^3 ==== pow(8,3)
Valar Morghulis

Gruss Carlo
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Excel Spaltenbezeichung in Zahl

Beitrag von Koverhage »

Ramses, Danke.

Hier noch wie ich das jetzt gelöst habe.

Code: Alles auswählen

Function GetColumnNumber(ColName)
Local i := 0, ColNum := 0, expn := 0, nAnzahlChar := len(ColName)

IF nAnzahlChar < 1 .or. nAnzahlChar > 3
   return ColNum
ENDIF

for  i := nAnzahlChar TO 1 STEP -1
    ColNum += (Asc(ColName[i]) - Asc('A') + 1) * (26 ^ expn)
    expn ++
next
return Int(ColNum)
Gruß
Klaus
Antworten