Einzelnen Beitrag anzeigen

Khanysha

Registriert seit: 11. Jun 2015
Ort: Dunkeldeutschland
23 Beiträge
 
Delphi 7 Professional
 
#7

AW: Excel,Spaltenkonvertierung, Übergang zu nächstem Buchstaben

  Alt 9. Sep 2015, 06:54
Es hat mir keine Ruhe gelassen, deshalb noch 'ne kürzere Variant
Delphi-Quellcode:
program ExcelSpalten;

function MS_EXCEL_ConvertColumn(AColumn: Integer): String;
begin
  if (AColumn < 1) or (AColumn > 16384) then begin
    Result := Format('ungültige Spaltenposition (%d)',[AColumn]);
  end else while AColumn > 0 do begin
    if AColumn mod 26 = 0 then begin
      Result := 'Z' + Result;
      AColumn := AColumn - 1;
    end else begin
      Result := Chr((AColumn mod 26) + 64) + Result;
    end;
    AColumn := AColumn div 26;
  end;
end;

var
        i : Integer;
begin
  // Spaltenbezeichnungen können von 1 -> A bis 16384 -> XFD vergeben werden.
  for i := 0 to 16385 do WriteLn(MS_EXCEL_ConvertColumn(i));
end.
So in dieser Art hab ich es nun auch Habe gestern noch den Fall von Negativzahlen und MaxSpalten abgefangen, ich habe zwar keine Ahnung wer so eine breite Tabelle hat aber man weiß ja nie. Darum mache ich ja die Unittests, um auf Grenzen und Fehlerfälle zu prüfen ̶ ̶̶m̶̶u̶̶s̶̶s̶̶ ̶̶s̶̶t̶̶a̶̶t̶̶t̶̶ ̶̶d̶̶e̶̶m̶̶ ̶̶o̶̶r̶̶ ̶̶n̶̶i̶̶c̶̶h̶̶t̶̶ ̶̶e̶̶i̶̶n̶̶ ̶̶u̶̶n̶̶d̶̶ ̶̶r̶̶e̶̶i̶̶n̶̶?̶̶ ̶̶w̶̶e̶̶i̶̶l̶̶ ̶̶i̶̶n̶̶ ̶̶d̶̶e̶̶i̶̶n̶̶e̶̶m̶̶ ̶̶f̶̶a̶̶l̶̶l̶̶ ̶̶k̶̶a̶̶n̶̶n̶̶ ̶̶i̶̶c̶̶h̶̶ ̶̶d̶̶o̶̶c̶̶h̶̶ ̶̶n̶̶e̶̶g̶̶a̶̶t̶̶i̶̶v̶̶e̶̶ ̶̶z̶̶a̶̶h̶̶l̶̶e̶̶n̶̶ ̶̶e̶̶i̶̶n̶̶t̶̶r̶̶a̶̶g̶̶e̶̶n̶̶ ̶̶o̶̶d̶̶e̶̶r̶̶?̶̶ ̶̶d̶̶3̶̶e̶̶n̶̶k̶̶e̶̶ ̶̶i̶̶c̶̶h̶̶ ̶̶d̶̶a̶̶ ̶̶n̶̶u̶̶n̶̶ ̶̶i̶̶n̶̶ ̶̶d̶̶i̶̶e̶̶ ̶̶f̶̶a̶̶l̶̶s̶̶c̶̶h̶̶e̶̶ ̶̶r̶̶i̶̶c̶̶h̶̶t̶̶u̶̶n̶̶g̶̶,̶̶ ̶̶w̶̶o̶̶r̶̶t̶̶w̶̶ö̶̶r̶̶t̶̶l̶̶i̶̶c̶̶h̶̶?̶


Vergiss das mit dem Und... hatte noch keinen Kaffee und habe die nächste Zeile beim 3.Mal erst realisiert.
LG
Lizzy

Geändert von Khanysha ( 9. Sep 2015 um 06:57 Uhr)
  Mit Zitat antworten Zitat