Jump to content
Zum Start hinzufügen

Weitere Informationen

3D-Modellbahn Studio

Eine Vollbild-App auf Ihrem Startbildschirm mit Push-Benachrichtigungen und mehr.

So installieren Sie diese App auf iOS und iPadOS
  1. Tippen Sie auf das Teilen-Symbol in Safari
  2. Scrollen Sie durch das Menü und tippen Sie auf Zum Startbildschirm hinzufügen.
  3. Tippen Sie oben rechts auf Hinzufügen.
So installieren Sie diese App auf Android
  1. Tippen Sie auf das 3-Punkte-Menü (⋮) in der oberen rechten Ecke des Browsers.
  2. Tippen Sie auf Zum Startbildschirm hinzufügen oder App installieren.
  3. Bestätigen Sie durch Tippen auf Installieren.

Empfohlene Beiträge

Geschrieben

Hallo,

Für die einheitliche Formatierung von strings wollte ich mir die einzelnen Längen ausgeben lassen. Dabei bin ich darauf gestoßen, daß Umlaute 2 Zeichen belegen...

print("Koln="..string.len("Koln"),"Köln="..string.len("Köln"))

print("o="..string.len("o"),"ö="..string.len("ö"))

ergibt...

Zitat

[16:55:31] Schalter wird betätigt -> Taster groß, 0
[16:55:31]     Schalter wird betätigt
[16:55:31]         Koln=4    Köln=5
[16:55:31]         o=1    ö=2

 

So etwas macht mich neugierig... weiß jemand warum?

Gruß
EASY
 

Geschrieben

Das passiert bei vielen Systemen/Programmiersprachen: Wenn ein Zeichen im String nicht zum Standard-Zeichensatz des Systems gehört, wird intern ein Steuerzeichen und z.B. der ASCII-Wert des Zeichens gespeichert. Deshalb können auch an anderen Stellen (z.B. Bezeichnung eines Tabellenelementes) keine Sonderzeichen (auch Umlaute und ß) nicht verwendet werden.

Gruß,
    Wolfgang

 

Geschrieben

Hallo EASY,

das Studio arbeitet in UTF8, ist also vollständig unicode-kompatibel. Und bei UTF8 bestehen deutsche Umlaute aus 2 Bytes.

Lua besitzt eine interne UTF8-Bibliothek, siehe Doku, mit der du die Zeichen unabhängig der Byte-Anzahl ermitteln kann. Ich bin mir grad nicht sicher, ob die Library im Studio aktiviert ist, falls nicht, kann ich das nachholen.

Viele Grüße,

Neo

Geschrieben
  • Autor

Hallo,

vor einer Stunde schrieb Neo:

Lua besitzt eine interne UTF8-Bibliothek, siehe Doku, mit der du die Zeichen unabhängig der Byte-Anzahl ermitteln kann.

In ZeroBrane Studio ergibt...

print(utf8.len("Koln"),utf8.len("Köln"))

4	4

und in MBS:

[19:07:22]         Skriptfehler (15): attempt to index a nil value (global 'utf8')

... womit diese (indirekte) Fragestellung...

vor einer Stunde schrieb Neo:

Ich bin mir grad nicht sicher, ob die Library im Studio aktiviert ist

... beantwortet wäre.

vor einer Stunde schrieb Neo:

falls nicht, kann ich das nachholen.

... wäre schön:)

... dann sieht z.B. eine Tabelle...
Tabelle01.jpg.de78c91b90bb1410dfa8feee824db8dc.jpg

... in ihren Trennungszeichen nicht so zerfranst aus...

Gruß
EASY

Geschrieben

Hallo EASY,

ab V9 kannst du in Lua die UTF8-Bibliothek nutzen.

Viele Grüße,

Neo

Geschrieben
  • Autor

Hallo,

Zwar etwas umständlich aber bis zur V9 behelfe ich mir damit...

--[[
Umlaute bestehen aus 2 Zeichen! (string.char(195) vorangestellt)
Es wird allerdings nur ein Zeichen dargestellt, weshalb die
Wortlänge string.len() angepasst werden muß.

* string.gsub() ist prinzipiell eine Ersetzungsfunktion
  und liefert 2 Werte: den geänderten String und die Anzahl der Ersetzungen.
  Da am geänderten String kein Interesse beseht
  -> "_" als Variable und "" als Ersetzungsstring (kann jeder beliebige String sein)
--]]

local wort="Köln-Überdorf"
local _,z=string.gsub(wort,string.char(195),"")-- *

local n=string.len(wort)
local n1=n-z

print("Anzahl der Zeichen von "..wort)
print(n,"(mit doppeltem Zeichen Umlaut)")
print(n1,"(wahre Anzahl der Zeichen)")

... liefert...

[17:23:44] Schalter wird betätigt -> Taster groß, 0
[17:23:44]     Schalter wird betätigt
[17:23:44]         Anzahl der Zeichen von Kölnberdorf
[17:23:44]         15    (mit doppeltem Zeichen Umlaut)
[17:23:44]         13    (wahre Anzahl der Zeichen)

... dann sieht die Tabelle auch wieder geordnet aus...
Tabelle02.jpg.a30869109a50ade67b0e2459037a8e4b.jpg

Gruß
EASY

Bearbeitet von EASY

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Push-Benachrichtigungen konfigurieren

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.