Ga naar inhoud

Afdruk centreren rond komma in getallen


Aanbevolen berichten

Hallo, Voor een programma moet ik een tabel met bedragen afdrukken, waarbij het natuurlijk netter staat als de bedragen netjes met de komma boven elkaar staan. Wie weet hoe ik dat voor elkaar kan krijgen in VB6? Met het berekenen van de plaats en vervolgens afdrukken met behulp van printer.CurrentX en printer.CurrentY krijg ik dit niet voor elkaar omdat de cijfers in breedte verschillen. Ik wil, als het even kan, niet teruggaan naar een lettertype met vaste breedtes voor de cijfers. Alvast bedankt voor de moeite. René
Link naar reactie
[quote:fdd48b544c="DutchNoName"] Voor een programma moet ik een tabel met bedragen afdrukken, waarbij het natuurlijk netter staat als de bedragen netjes met de komma boven elkaar staan. Wie weet hoe ik dat voor elkaar kan krijgen in VB6? Met het berekenen van de plaats en vervolgens afdrukken met behulp van printer.CurrentX en printer.CurrentY krijg ik dit niet voor elkaar omdat de cijfers in breedte verschillen. Ik wil, als het even kan, niet teruggaan naar een lettertype met vaste breedtes voor de cijfers. [/quote:fdd48b544c]Ik denk dat de uitvoer "lelijker" is als je het zo doet, omdat dan de cijfers achter de komma niet allemaal onder elkaar staan... Wat je zou kunnen doen is het getallen in drie delen opsplitsen. - Getal voor de komma - Komma - Getal achter de komma En dan... - Het getal voor de komma rechts gecentreerd plaatsen op de juiste positie. - Vervolgens de komma op een vaste plaats plaatsen. - Het getal achter de komma links gecentreerd plaatsen op de juiste positie.
Link naar reactie
Inmiddels zelf nog verder aan het sleutelen geslagen. Ik ben uitgegaan van een gemiddelde breedte van een letter/cijfer. Door nu de cijfers 1 voor 1 te printen op een onderlinge vaste afstand, met uitzondering van een punt of komma, komen de cijfers wel goed onder elkaar. Oké, het is niet de meest fantastische oplossing, het werkt wel. Ik ga jouw oplossing ook proberen en kijken wat het mooiste resultaat geeft. In ieder geval bedankt. [code:1:6917baa3dc]With Printer j = .CurrentX For i = Len(sTekst) To 1 Step -1 .CurrentY = y If i < Len(sTekst) And i > 1 Then sLetter = Mid$(sTekst, i - 1, 1) Else sLetter = Mid$(sTekst, i, 1) End If Printer.Print Mid$(sTekst, i, 1) If sLetter = "," Or sLetter = "." Then j = j - 70 Else j = j - 120 End If .CurrentX = j Next i End With [/code:1:6917baa3dc]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...