Author Topic: Text line break in QB64  (Read 2648 times)

0 Members and 1 Guest are viewing this topic.

Offline Kernelpanic

  • Newbie
  • Posts: 94
    • View Profile
Text line break in QB64
« on: May 17, 2021, 06:52:34 pm »
Hello, how does a line break work in QB64?
The idiotic arrangement of our equally political idiots that in shops should be 30 square meters of space for each customer has led me to this little program.
Thanks!

Code: QB64: [Select]
  1. 'Seitenlaenge eine Quadrats berechnen - 16. Mai 2021
  2. 'Angeregt durch die idiotische Vorschrift, dass in Geschaeften
  3. 'fuer jeden Kunden zuletzt 30 qm zur Verfuegung stehen sollen.
  4. 'Das damit die Standardabstandsregelung von 1,5 Meter obsolet wird,
  5. 'scheint offenbar Niemand bewusst zu sein.
  6.  
  7. 'Variablendeklaration erzwingen
  8.  
  9. DIM Text AS STRING, Text2 AS STRING, Text3 AS STRING
  10. DIM quadratflaeche AS DOUBLE, seitenlaenge AS DOUBLE
  11.  
  12. 'Ausgabefenster bestimmen
  13. SCREEN _NEWIMAGE(800, 600, 32)
  14.  
  15. LOCATE (CSRLIN + 2), POS(10)
  16. PRINT "Berechnet die Seitenlaenge eines Quadrats"
  17. PRINT "========================================="
  18. INPUT "Flaeche des Quadrats in qm: ", quadratflaeche
  19.  
  20. 'Seitenlaenge = Quadratwurzel des Flaecheninhaltes
  21. seitenlaenge = SQR(quadratflaeche)
  22.  
  23. PRINT USING "Die Seitenlaenge eines Quadrat von ###.## qm betraegt: ##.### Meter"; quadratflaeche, seitenlaenge
  24.  
  25. 'Neue Farbe fuer Ausgabe der Quadrate
  26. COLOR _RGB32(0, 191, 255), _RGB(0, 0, 0)
  27.  
  28. '2 Quadrate neben einander. Die X-Koordinate legt den Abstand
  29. 'vom linken Rand fest, Y die Flaeche. Daher ist die
  30. 'For-Schleife fuer Y in beiden Schleifen gleich.
  31. FOR x = 50 TO 150
  32.   FOR y = 150 TO 250
  33.     PSET (x, y)
  34.   NEXT
  35.  
  36. FOR x = 350 TO 450
  37.   FOR y = 150 TO 250
  38.     PSET (x, y)
  39.   NEXT
  40.  
  41. Text = "---------------------------------------"
  42. 'Zeile, Spalte (Row, Column)
  43. _PRINTSTRING (86, 191), Text
  44.  
  45. 'Die Zahl in einen String umwandeln, und die Anzahl der Nachkommastellen festlegen
  46. 'Das bedeutet bei einem Double-Wert, keine Ausgabe wie: xy.12345678
  47. Text = STR$(seitenlaenge)
  48. _PRINTSTRING (196, 191), LEFT$(Text, 6)
  49.  
  50. Text2 = "Meter"
  51. _PRINTSTRING (256, 191), Text2
  52.  
  53. 'Farbe der Ausgabe festlegen - hier Standard
  54. COLOR _RGB32(255), _RGB(0, 0, 0)
  55.  
  56. Text3 = "Die Anordnung der Politik fuer 30 Quadratmeter pro Kunde in einem Geschaeft zeigt, " + _
  57. "dass dies ohne Sinn und Verstand erfolgte. Durch dies Anordnung wird naemlich der Abstand pro " + _
  58. "Person von 1,5 Meter auf ueber 5 Meter erweitert."
  59. _PRINTSTRING (10, 290), Text3
  60.  
  61.  
Mark Twain
"Als wir das Ziel endgültig aus den Augen verloren hatten, verdoppelten wir unsere Anstrengungen."
„Having lost sight of our goals, we redoubled our efforts.“

Offline Richard Frost

  • Seasoned Forum Regular
  • Posts: 316
  • Needle nardle noo. - Peter Sellers
    • View Profile
Re: Text line break in QB64
« Reply #1 on: May 18, 2021, 01:16:49 am »
Break up the long text manually so it'll fit on the screen or:

Code: QB64: [Select]
  1. 'Seitenlaenge eine Quadrats berechnen - 16. Mai 2021
  2. 'Angeregt durch die idiotische Vorschrift, dass in Geschaeften
  3. 'fuer jeden Kunden zuletzt 30 qm zur Verfuegung stehen sollen.
  4. 'Das damit die Standardabstandsregelung von 1,5 Meter obsolet wird,
  5. 'scheint offenbar Niemand bewusst zu sein.
  6.  
  7. 'Variablendeklaration erzwingen
  8.  
  9. Dim t$
  10. Dim Text As String, Text2 As String, Text3 As String
  11. Dim quadratflaeche As Double, seitenlaenge As Double
  12.  
  13. 'Ausgabefenster bestimmen
  14. Screen _NewImage(800, 600, 32)
  15.  
  16. Locate (CsrLin + 2), Pos(10)
  17. Print "Berechnet die Seitenlaenge eines Quadrats"
  18. Print "========================================="
  19. Input "Flaeche des Quadrats in qm: ", quadratflaeche
  20.  
  21. 'Seitenlaenge = Quadratwurzel des Flaecheninhaltes
  22. seitenlaenge = Sqr(quadratflaeche)
  23.  
  24. Print Using "Die Seitenlaenge eines Quadrat von ###.## qm betraegt: ##.### Meter"; quadratflaeche, seitenlaenge
  25.  
  26. 'Neue Farbe fuer Ausgabe der Quadrate
  27. Color _RGB32(0, 191, 255), _RGB(0, 0, 0)
  28.  
  29. '2 Quadrate neben einander. Die X-Koordinate legt den Abstand
  30. 'vom linken Rand fest, Y die Flaeche. Daher ist die
  31. 'For-Schleife fuer Y in beiden Schleifen gleich.
  32. For x = 50 To 150
  33.     For y = 150 To 250
  34.         PSet (x, y)
  35.     Next
  36.  
  37. For x = 350 To 450
  38.     For y = 150 To 250
  39.         PSet (x, y)
  40.     Next
  41.  
  42. Text = "---------------------------------------"
  43. 'Zeile, Spalte (Row, Column)
  44. _PrintString (86, 191), Text
  45.  
  46. 'Die Zahl in einen String umwandeln, und die Anzahl der Nachkommastellen festlegen
  47. 'Das bedeutet bei einem Double-Wert, keine Ausgabe wie: xy.12345678
  48. Text = Str$(seitenlaenge)
  49. _PrintString (196, 191), Left$(Text, 6)
  50.  
  51. Text2 = "Meter"
  52. _PrintString (256, 191), Text2
  53.  
  54. 'Farbe der Ausgabe festlegen - hier Standard
  55. Color _RGB32(255), _RGB(0, 0, 0)
  56.  
  57. Text3 = "Die Anordnung der Politik fuer 30 Quadratmeter pro Kunde in einem Geschaeft zeigt, " + _
  58. "dass dies ohne Sinn und Verstand erfolgte. Durch dies Anordnung wird naemlich der Abstand pro " + _
  59. "Person von 1,5 Meter auf ueber 5 Meter erweitert. "
  60. '_PrintString (10, 290), Text3
  61.  
  62. p = 1
  63. x = 10
  64. y = 290
  65.     p = InStr(Text3, " ")
  66.     If p = 0 Then Exit Do
  67.     t$ = Left$(Text3, p)
  68.     Text3 = Right$(Text3, Len(Text3) - p)
  69.     If x + _PrintWidth(t$) > (_Width - 20) Then
  70.         x = 10
  71.         y = y + _FontHeight + 2
  72.     End If
  73.     _PrintString (x, y), t$
  74.     x = x + _PrintWidth(t$)
  75.  
  76.  
« Last Edit: May 18, 2021, 01:17:57 am by Richard Frost »
It works better if you plug it in.

Offline Kernelpanic

  • Newbie
  • Posts: 94
    • View Profile
Re: Text line break in QB64
« Reply #2 on: May 18, 2021, 05:53:48 pm »
Break up the long text manually so it'll fit on the screen or:
I think I do it manually. I kind of confused this with HTML. Thanks.
Mark Twain
"Als wir das Ziel endgültig aus den Augen verloren hatten, verdoppelten wir unsere Anstrengungen."
„Having lost sight of our goals, we redoubled our efforts.“