Basic unter Linux: Fehler bei INPUT

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Kitter
Beiträge: 2
Registriert: Sa, 22.03.2008 09:52
Wohnort: Duderstadt / Südniedersachsen

Basic unter Linux: Fehler bei INPUT

Beitrag von Kitter »

Hallo,

nachdem ich nun über Ostern nach der Ursache für ein seltsames Verhalten gesucht habe, habe ich Folgendes heraus gefunden:

Die line input-Funktion liefert korrekte Umlaute, während die input-Funktion einen fehlerhaften String liefert. In der msgbox kann man das sehen. Der Code für das Makro:

Code: Alles auswählen

REM  *****  BASIC  *****

'Fehler in OO-Basic (GetSolarVersion liefert 680) unter Linux (Ubuntu 7.10)
'Umlaute und Sonderzeichen werden bei line input korrekt aus einer Datei gelesen,
'bei input hingegen nicht.

Sub Main
	select case GetGUIType()
		case 1 'Windows
			stop
		case 3 'Mac
			stop
		case 4 'Unix
			tmppfad$="file:///tmp/"
			tmpfile$=tmppfad$+"tmp.$$$"
	end select


	raus%=freefile
	open tmpfile$ for output as #raus%
		print #raus%,"1,Hallo Ae=Ä Oe=Ö Ue=Ü sz=ß ae=ä oe=ö ue=ü"
		print #raus%,"2,Hallo Ae=Ä Oe=Ö Ue=Ü sz=ß ae=ä oe=ö ue=ü"
	close

	crlf$=chr$(13)

	rin%=freefile
	open tmpfile$ for input as #rin%
		meld$ = "Sprache und Kodierung: "+Environ("LANG")+crlf$+crlf$
		meld$ = meld$+"Erster String mit line input:"+crlf$
		line input #rin%,btext$
		meld$ = meld$+btext$+crlf$+crlf$
		meld$ = meld$+"Zweiter String mit input:"+crlf$
		input #rin%,zahl%,btext$
		meld$ = meld$+str$(zahl%)+btext$+crlf$
		msgbox meld$
	close
	
	kill tmpfile$

End Sub
Nach meinem Erachten liegt hier ein Fehler vor. Das Verfahren zum Melden eines Fehlers ist mir zu kompliziert. Das Nachschauen im issuetracker gab keinen Hinweis darauf, dass der Fehler schon bekannt ist. Würde bitte jemand mit der entsprechenden Sachkunde diesen Fehler melden?

Martin
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Basic unter Linux: Fehler bei INPUT

Beitrag von Toxitom »

Hey Martin,

ich kann jetzt nicht überprüfen, ob der Fehler wirklich existiert - gehe aber mal davon aus, dass du recht hast. Ein "Melden " würde aber in dem Fall wenig bringen - es wäre ja ein "Basic" -Fehler. Und das Basic wird nicht weiter gepflegt.
Ich empfehle auch nicht mehr, diese Methoden (Basic) zu benutzen. Gleiche Funktionen findest du auch in UNO realisiert (Service SimpleFileAccess im Modul UCB). Diese sind im Zweifelsfall immer vorzuziehen - und werden auch weiterhin gepflegt.

Probier diese einfach mal - möglicherweise lösen sich damit deine Probleme :-)

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Antworten