LO Hilfe - LO Basic - ''Mid ''- Beispiel '' ExampleUSDate'' fehlerhaft

classic Classic list List threaded Threaded
3 messages Options
OoOHWHOoO OoOHWHOoO
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

LO Hilfe - LO Basic - ''Mid ''- Beispiel '' ExampleUSDate'' fehlerhaft

Hallo,

das Beispiel "ExampleUSDate" für "Mid" soll wohl "MM-DD-YYYY" umwandeln
in "DD/MM/YYY", erzeugt aber "-Y/YY/MM-D".

Gruß
Hans-Werner

[0]  LO 5.3.4.1 (x64) @ Windows 7 Home Premium (x64)

[1] Fehlerhaftes (Original-) Makro

Sub ExampleUSDate
Dim sInput As String
Dim sUS_date As String
sInput = InputBox("Geben Sie bitte ein Datum im englischen Format
MM-DD-YYYY ein")
sUS_date = Mid(sInput, 6, 2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Right(sInput, 2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Left(sInput, 4)
MsgBox sUS_date
End Sub

[2] Korrigiertes Makro

Sub ExampleUSDate_KORRIGIERT
Dim sInput As String
Dim sUS_date As String
sInput = InputBox("Geben Sie bitte ein Datum im englischen Format
MM-DD-YYYY ein")
sUS_date = Mid(sInput, 4, 2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Left(sInput, 2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Right(sInput, 4)
MsgBox sUS_date
End Sub


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
Gerhard Weydt Gerhard Weydt
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LO Hilfe - LO Basic - ''Mid ''- Beispiel '' ExampleUSDate'' fehlerhaft

Hallo Hans-Werner,

da ist die deutsche Hilfe nicht konsistent mit der englischsprachigen
Fassung. Dort steht im Code
"Please input a date in the international format 'YYYY-MM-DD'".
In der deutschen Fassung steht aber eine ganz andere Formatdarstellung:
"Geben Sie bitte ein Datum im englischen Format MM-DD-YYYY ein".
Deine Korrektur am Programm ist wahrscheinlich richtig, auch wenn ich
sie nur oberflächlich angeschaut habe, aber der wahre Fehler liegt eher
in der falschen Formatbeschreibung im deutschen Makro, denn mit dem
Format laut englischsprachigem Makro funktioniert das offenbar (Testen
trotzdem empfehlenswert, ich habe es nämlich nicht probiert). Das
Beispiel ist ja auch nicht schlecht, es ist eine - und dann auch für
Deutschland benötigte - Version der leider häufiger notwendigen
Umwandlungen in nationale Datumsformate aus der - z.B. in Datenbanken
ziemlich universell verwendeten - Darstellung laut der international
normierten Norm (ISO 8601). Die Norm ist ja gerade wegen der lokalen
Schreibweisen für die EDV unumgänglich. (Und bei Überweisungsbelegen
funktioniert sie, das habe ich schon vor Jahren getestet.) Und das
Beispiel enthält ja die gleichen Befehle wie dein korrigiertes Beispiel,
also ist es für ein Beispiel genauso gut.
Meine Empfehlung ist daher: einfach den Text der Inputbox an den
englischen Text anpassen, dadurch ist in der beschriebenen
Funktionalität nichts geändert.
Ich habe momentan nicht parat, an welche Liste man das am besten
schicken sollte, vielleicht liest jemand mit, der das veranlasst.

Gruß

Geerhard


Am 13.06.2017 um 21:10 schrieb OoOHWHOoO:

> Hallo,
>
> das Beispiel "ExampleUSDate" für "Mid" soll wohl "MM-DD-YYYY"
> umwandeln in "DD/MM/YYY", erzeugt aber "-Y/YY/MM-D".
>
> Gruß
> Hans-Werner
>
> [0]  LO 5.3.4.1 (x64) @ Windows 7 Home Premium (x64)
>
> [1] Fehlerhaftes (Original-) Makro
>
> Sub ExampleUSDate
> Dim sInput As String
> Dim sUS_date As String
> sInput = InputBox("Geben Sie bitte ein Datum im englischen Format
> MM-DD-YYYY ein")
> sUS_date = Mid(sInput, 6, 2)
> sUS_date = sUS_date & "/"
> sUS_date = sUS_date & Right(sInput, 2)
> sUS_date = sUS_date & "/"
> sUS_date = sUS_date & Left(sInput, 4)
> MsgBox sUS_date
> End Sub
>
> [2] Korrigiertes Makro
>
> Sub ExampleUSDate_KORRIGIERT
> Dim sInput As String
> Dim sUS_date As String
> sInput = InputBox("Geben Sie bitte ein Datum im englischen Format
> MM-DD-YYYY ein")
> sUS_date = Mid(sInput, 4, 2)
> sUS_date = sUS_date & "/"
> sUS_date = sUS_date & Left(sInput, 2)
> sUS_date = sUS_date & "/"
> sUS_date = sUS_date & Right(sInput, 4)
> MsgBox sUS_date
> End Sub
>
>


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
OoOHWHOoO OoOHWHOoO
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LO Hilfe - LO Basic - ''Mid ''- Beispiel '' ExampleUSDate'' fehlerhaft

Hallo Gerhard,

danke für Dein Feedback. Dein Hinweis auf den englisch-sprachigen
Eingabe-Anforderungstext bringt "Licht ins "Dunkel":

[1] ORIGINAL - LO [ENG]: Wandelt YYYY-MM-DD (internationales Format) in
MM-DD-YYYY (US Format) um.

Sub ExampleUSDate
Dim sInput As String
Dim sUS_date As String
sInput = InputBox("Please input a date in the international format
YYYY-MM-DD:")
sUS_date = Mid(sInput,6,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Right(sInput,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Left(sInput,4)
MsgBox sUS_date
End Sub

[1.1] Mid(sInput,6,2): Nimm ab dem 6. Zeichen 2 Zeichen => MM
[1.2] Right(sInput,2): Nimm 2 Zeichen von rechts => DD
[1.3] Left(sInput,4): Nimm 4 Zeichen von links: => YYYY

[2] ORIGINAL - LO [DEU]: Erzeugt Quatsch, da die Eingabeaufforderung ein
falsches Datumsformat anfordert:

Sub ExampleUSDate
Dim sInput As String
Dim sUS_date As String
sInput = InputBox("Geben Sie bitte ein Datum im englischen Format
MM-DD-YYYY ein:")
sUS_date = Mid(sInput,6,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Right(sInput,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Left(sInput,4)
MsgBox sUS_date
End Sub

[2.1] Mid(sInput,6,2): Nimm ab dem 6. Zeichen 2 Zeichen => -Y
[2.2] Right(sInput,2): Nimm 2 Zeichen von rechts => YY
[2.3] Left(sInput,4): Nimm 4 Zeichen von links: => MM-D

[3] KORRIGIERT - LO [DEU]: Wandelt YYYY-MM-DD (internationales Format)
in MM/DD/YYYY (US Format) um.

Sub ExampleUSDate
Dim sInput As String
Dim sUS_date As String
sInput = InputBox("Geben Sie bitte ein Datum im internationalen Format
YYYY-MM-DD ein:")
sUS_date = Mid(sInput, 6, 2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Right(sInput, 2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Left(sInput, 4)
MsgBox sUS_date
End Sub

[3.1] Mid(sInput,6,2): Nimm ab dem 6. Zeichen 2 Zeichen => MM
[3.2] Right(sInput, 2): Nimm 2 Zeichen von rechts => DD
[3.3] Left(sInput, 4): Nimm 4 Zeichen von links: => YYYY

Die einfachste Lösung ist sicherlich, wie von Dir vorgeschlagen, den
deutschen Eingabetext zu korrigieren.

Mein Vorschlag wäre, zusätzlich die "InputBox"-Anzeige um die
Information "YYYY-MM-DD (Datum international) => MM/DD/YYYY (Datum US)"
zu ergänzen, da vielleicht nicht jeder weiß, wie das Format des "USDate"
ausschaut und dann vielleicht irritiert ist, wenn "MM/DD/YYYY"
ausgegeben wird.

[4] Ergänzte "InputBox"-Anzeige

[4.1] VORSCHLAG - LO [ENG]: Wandelt YYYY-MM-DD (internationales Format)
in MM/DD/YYYY (US Format) um.

Sub ExampleUSDate
Dim sInput As String
Dim sUS_date As String
sInput = InputBox("Please input a date in the international format
YYYY-MM-DD:",_
"YYYY-MM-DD (date international) => MM/DD/YYYY (date US)")
sUS_date = Mid(sInput,6,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Right(sInput,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Left(sInput,4)
MsgBox sUS_date
End Sub

[4.1] VORSCHLAG - LO [DEU]: Wandelt YYYY-MM-DD (internationales Format)
in MM/DD/YYYY (US Format) um.

Sub ExampleUSDate
Dim sInput As String
Dim sUS_date As String
sInput = InputBox("Geben Sie bitte ein Datum im internationalen Format
YYYY-MM-DD ein:",_
"YYYY-MM-DD (Datum international) => MM/DD/YYYY (Datum US)")
sUS_date = Mid(sInput,6,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Right(sInput,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Left(sInput,4)
MsgBox sUS_date
End Sub

An welche "Liste" man das senden sollte, weiß ich auch nicht -
"BugReport" sicherlich nicht. So hoffe ich auch, das dies von jemandem
mitgelesen wird, der weiß, wer diesbezüglich informiert werden sollte -
oder es vielleicht sogar gleich selbst "in die Wege leitet".

Gruß
Hans-Werner

------ Originalnachricht ------
Von: "Gerhard Weydt" <[hidden email]>
An: [hidden email]
Gesendet: 17.06.2017 01:46:23
Betreff: Re: [de-users] LO Hilfe - LO Basic - ''Mid ''- Beispiel ''
ExampleUSDate'' fehlerhaft

>Hallo Hans-Werner,
>
>da ist die deutsche Hilfe nicht konsistent mit der englischsprachigen
>Fassung. Dort steht im Code
>"Please input a date in the international format 'YYYY-MM-DD'".
>In der deutschen Fassung steht aber eine ganz andere Formatdarstellung:
>"Geben Sie bitte ein Datum im englischen Format MM-DD-YYYY ein".
>Deine Korrektur am Programm ist wahrscheinlich richtig, auch wenn ich
>sie nur oberflächlich angeschaut habe, aber der wahre Fehler liegt eher
>in der falschen Formatbeschreibung im deutschen Makro, denn mit dem
>Format laut englischsprachigem Makro funktioniert das offenbar (Testen
>trotzdem empfehlenswert, ich habe es nämlich nicht probiert). Das
>Beispiel ist ja auch nicht schlecht, es ist eine - und dann auch für
>Deutschland benötigte - Version der leider häufiger notwendigen
>Umwandlungen in nationale Datumsformate aus der - z.B. in Datenbanken
>ziemlich universell verwendeten - Darstellung laut der international
>normierten Norm (ISO 8601). Die Norm ist ja gerade wegen der lokalen
>Schreibweisen für die EDV unumgänglich. (Und bei Überweisungsbelegen
>funktioniert sie, das habe ich schon vor Jahren getestet.) Und das
>Beispiel enthält ja die gleichen Befehle wie dein korrigiertes
>Beispiel, also ist es für ein Beispiel genauso gut.
>Meine Empfehlung ist daher: einfach den Text der Inputbox an den
>englischen Text anpassen, dadurch ist in der beschriebenen
>Funktionalität nichts geändert.
>Ich habe momentan nicht parat, an welche Liste man das am besten
>schicken sollte, vielleicht liest jemand mit, der das veranlasst.
>
>Gruß
>
>Geerhard
>
>
>Am 13.06.2017 um 21:10 schrieb OoOHWHOoO:
>>Hallo,
>>
>>das Beispiel "ExampleUSDate" für "Mid" soll wohl "MM-DD-YYYY"
>>umwandeln in "DD/MM/YYY", erzeugt aber "-Y/YY/MM-D".
>>
>>Gruß
>>Hans-Werner
>>
>>[0]  LO 5.3.4.1 (x64) @ Windows 7 Home Premium (x64)
>>
>>[1] Fehlerhaftes (Original-) Makro
>>
>>Sub ExampleUSDate
>>Dim sInput As String
>>Dim sUS_date As String
>>sInput = InputBox("Geben Sie bitte ein Datum im englischen Format
>>MM-DD-YYYY ein")
>>sUS_date = Mid(sInput, 6, 2)
>>sUS_date = sUS_date & "/"
>>sUS_date = sUS_date & Right(sInput, 2)
>>sUS_date = sUS_date & "/"
>>sUS_date = sUS_date & Left(sInput, 4)
>>MsgBox sUS_date
>>End Sub
>>
>>[2] Korrigiertes Makro
>>
>>Sub ExampleUSDate_KORRIGIERT
>>Dim sInput As String
>>Dim sUS_date As String
>>sInput = InputBox("Geben Sie bitte ein Datum im englischen Format
>>MM-DD-YYYY ein")
>>sUS_date = Mid(sInput, 4, 2)
>>sUS_date = sUS_date & "/"
>>sUS_date = sUS_date & Left(sInput, 2)
>>sUS_date = sUS_date & "/"
>>sUS_date = sUS_date & Right(sInput, 4)
>>MsgBox sUS_date
>>End Sub
>>
>>
>
>
>-- Liste abmelden mit E-Mail an: [hidden email]
>Probleme?
>http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
>Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
>Listenarchiv: http://listarchives.libreoffice.org/de/users/
>Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
Loading...