Autor Thema: Logik-Frage: Bytes in KB umwandeln mit Formatierung  (Gelesen 2111 mal)

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Hi,

ich benötige eine LS-Function, die mir Bytes in Kilobytes umwandelt.

Beispiele:
100 --> 0,1 KB
1314456 --> 1.283,6 KB
13144564567 --> 12.836.488,8 KB

Also: 1000er Trennzeichen, Rundung auf x Stellen

Habe mir überlegt, das über Select Case zu machen.

intLen = Len(lngBytesOhneNachkomma)
Select Case intLen
Case 1 To 3:
  strResultOhneNachkomma = ... 'setze Wert direkt, da wir keinen 1000er Punkt brauchen
Case 4 To 6:
  strResultOhneNachkomma = $Left(lngBytesOhneNachkomma, intLen - 3) & "." & $Right(lngBytesOhneNachkomma, 3)

usw.


Aber irgendwie ist das nicht toll.
Hat wer eine Idee, wie man das möglichst logisch und ohne viele Codezeilen (also ohne den in diesem Fall gruseligen Select Case....) umsetzen könnte?
Mir fehlt irgendwie die Idee hierzu...
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Logik-Frage: Bytes in KB umwandeln mit Formatierung
« Antwort #1 am: 08.09.04 - 21:41:37 »
Vielleicht verstehe ich ja nicht wirklich, was Du willst - aber das würde ich mit Round erledigen.
Oder: Schreib's mal genauer auf ...

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Logik-Frage: Bytes in KB umwandeln mit Formatierung
« Antwort #2 am: 08.09.04 - 21:45:43 »
Man nehme eine Zahl mit 1-n Stellen (ohne Nachkomma, ich nehme an, die hat man schon weggenommen).

Wie setze ich jetzt am einfachsten das 1000er Trennzeichen (Ergebnis = String)?
1 => "1"
100 => "100"
1000 => "1.000"
10000000000000 => "10.000.000.000.000"
usw.

Da war mein Ansatz, das mit "Select Case 'Anzahl Stellen' " umzusetzen, erscheint mir aber nicht sauber.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Logik-Frage: Bytes in KB umwandeln mit Formatierung
« Antwort #3 am: 08.09.04 - 21:52:33 »
Aah  ;)

Mein Vorschlag: Wert mit Round bilden, diesen dann als String umwandeln und diesen String "van Hinten" per Schleife durchlaufen und alle x Chars einen Punkt zwischensetzen (die Dimension AKA Kommastelle natürlich beachten).

HTH,
Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Logik-Frage: Bytes in KB umwandeln mit Formatierung
« Antwort #4 am: 08.09.04 - 21:57:26 »
Bernhard, danke, das "van Hinten" reicht mir schon als Lösung  :)

Klar, eine entsprechende Schlaife sollte da den zweck erfüllen  ;)

Nun kann ich auch Byte-Größen berücksichtigen, die jenseits unserer heutigen Vorstellungen sind, und es wohl erst in 5 Jahren einen entsprechenden Namen gibt  ;D
« Letzte Änderung: 08.09.04 - 21:59:17 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Logik-Frage: Bytes in KB umwandeln mit Formatierung
« Antwort #5 am: 08.09.04 - 21:59:15 »
Ein schöner Abschluss des heutigen (aufregenden) Tages  ;)

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Logik-Frage: Bytes in KB umwandeln mit Formatierung
« Antwort #6 am: 08.09.04 - 22:34:31 »
Schön  :)

Nur zur Klarstellung (für Mitleser, insbesondere Sparkassen etc.):
Das Round darf nur 1mal gebildet werden, also am Anfang, da ich hier ja Nachkommastellen mit ausgebe.

lngBytes = 100000
lngKB = 100000 / 1024
lngKBRounded = Round(lngKB, 2) 'Ergibt: 97,66
lngKBRoundedTemp = Round(lngKB, 0) 'Ergibt: 98

lngKBRoundedTemp darf man also nicht nehmen, wenn man das String hier neu aufbaut (und dahinter ["," & intNachkommastelle] hängt   ;) )

Ich schreibe das, weil wir hier einige Programmierer von Banken haben  ;D (nicht dass bei mir dann auf dem Kontoauszug negativ-Beträge einfach aufgerundet werden  :P  ;D )
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Logik-Frage: Bytes in KB umwandeln mit Formatierung
« Antwort #7 am: 09.09.04 - 09:53:38 »
Warum so kompliziert? Dafür gibts doch die Format-Funktion, oder hab ich jetzt was völlig falsch verstanden?

print format$ (Bytes/1024,"#,##0.00"

erzeugt doch genau die gesuchte Ausgabe?


« Letzte Änderung: 09.09.04 - 09:53:56 von Semeaphoros »
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Logik-Frage: Bytes in KB umwandeln mit Formatierung
« Antwort #8 am: 09.09.04 - 20:57:15 »
Volltreffer, Jens  :D

Cool, hatte daran überhaupt nicht gedacht. Genau sowas habe ich gesucht.

Danke  :)
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Logik-Frage: Bytes in KB umwandeln mit Formatierung
« Antwort #9 am: 10.09.04 - 12:07:54 »
Wie man sieht, wer sucht, der findet  ;D
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz