Rückgabewert hat immer mehr Klammern [[[[[[....

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

Moderator: Moderatoren

Benutzeravatar
red2sign
**
Beiträge: 47
Registriert: Mo, 28.07.2008 13:53

Rückgabewert hat immer mehr Klammern [[[[[[....

Beitrag von red2sign »

Hallo,

könnt Ihr das nachvollziehen? Ich rufe eine Funktion ein paar mal hintereinander in der gleichen Sub auf, dabei enthält die Rückgabewert nach jedem Aufruf einen Satz eckiger Klammern. Jedoch sollte in der Rückgabe nur der String stehen.

Hier der Code:

Code: Alles auswählen

Sub Textfeldfuellung
 Dim varGewUser as String
 Dim varSign as String
 Dim varResponse as String
 Dim varFunction as String
 Dim varTelefon as String
 Dim varTelefax as String
 Dim varEMail as String
 Dim sFile3 as String
 sFile3 = "D:\inifile.ini"
 
 KontrolleLB = MyDlg.getControl("ListBox1") 'Ansprechen des Listenfeldes (ListBox1)
 varGewUser = KontrolleLB.SelectedItem 'varGewUser ist der markierte Eintrag, zB Toni Tester oder Frank Farber
 msgbox varGewUser, 0, "Ihre Auswahl:"
 
  'Das Zeichen der Person aus der ini lesen:
 'varSign = readini(sFile3,varGewUser,"Sign","")
  'Die Email der Person aus der ini lesen:
 varEMail = readini(sFile3,varGewUser,"EMail")
 
 MsgBox varGewUser, 0, "varGewUser:"
 
 'Schreiben des Zeichens in TextField4
 'MyDlg.getControl("TextField4").Model.Text = varSign
  'Schreiben der EMail in TextField3
 MyDlg.getControl("TextField3").Model.Text = varEMail

 MsgBox varGewUser, 0, "varGewUser:"

End Sub
Wenn ich nun starte, erscheinen mir die drei Messageboxen mit dem Inhalt: Sony; [Sony]; [Sony]

Hier noch die readinifunktion:

Code: Alles auswählen

function readini(inifile as string, bereich as string, param as string) as string
   Dim inBereich as boolean
   Dim aFile as String
   Dim #inumber
   Dim szeile as String
   Dim para as String
   Dim Start as String
 
   inBereich=false
   readini=default
   Bereich="["+bereich+"]"
   #iNumber = Freefile
   aFile = inifile
   on error goto ende
   if FileExists(inifile) then
   Open aFile For Input As #iNumber
   While not eof(#iNumber)
 
   Line Input #iNumber, sZeile
   if szeile=Bereich then inBereich=true
   if inBereich then
     ipos=InStr(sZeile,"=")
      if ipos>0 then
        para=mid(szeile,1,ipos-1)
        if para = param then
          readini=mid(szeile,ipos+1)
          inBereich=false
        end if
      end if
    end if
    if inBereich then
     start=left(sZeile,1)
     if start="[" then inbereich=false
    end if
    if szeile=bereich then inBereich=true
    wend
    Close #iNumber
   end if
  exit function
  ende: 
end function
Hier noch ein paar Sätze für die Inidatei...
[c

Code: Alles auswählen

efaultUser]
NewInfo=
DefUser=1

[StoUser]
User0=Nokia
User1=Sony
User2=Alcatel
User3=Motorola
User4=Aikon
User5=Sharp
User6=LG
User7=BenQ
User8=Samsung
 
[Nokia]
Sign=NK
Response=Finnland
Function=Finne
Telefon=07nokia
Telefax=08nokia
EMail=mailatnokia.fn
Company=
Language=
Alignment=
 
[Sony]
Sign=SY
Response=Japan
Function=Japaner
Telefon=01sony
Telefax=01sony
EMail=mailatsony.jp
Company=
Language=
Alignment=

Hoffe ihr könnt mir helfen...
Dank und Gruß,
red2sign

Edit: Es scheint nicht an der OO-Version zu liegen, sondern irgendwo muss ein Bug vorliegen. Vermute bei der Aktion mit der Funktion.
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Rückgabewert hat immer mehr Klammern [[[[[[....

Beitrag von turtle47 »

Hi,

versuche mal folgendes:

Ersetze

Code: Alles auswählen

....... as String
durch

Code: Alles auswählen

....... as Variant
Hilft das?

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Benutzeravatar
red2sign
**
Beiträge: 47
Registriert: Mo, 28.07.2008 13:53

Re: Rückgabewert hat immer mehr Klammern [[[[[[....

Beitrag von red2sign »

Hi Jürgen!

Tatsächlich. Waum das?
Warum hat er bei der ersten MSGBOX dann trotz String das richte Ergebnis ausgegeben?

Gruß
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Rückgabewert hat immer mehr Klammern [[[[[[....

Beitrag von turtle47 »

red2sign hat geschrieben:Waum das?
Warum hat er bei der ersten MSGBOX dann trotz String das richte Ergebnis ausgegeben?
Kann ich Dir leider auch nicht sagen. Da werden wir wohl auf die Antwort von den Experten warten müssen.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Antworten