[Gambas-user] String array empty after SUB (Gambas 2)

GMail adamnt42 at ...626...
Wed Feb 22 20:26:46 CET 2012


On Wed, 2012-02-22 at 19:49 +0200, Jussi Lahtinen wrote:
> Just quick thought... maybe this "felder = feld.Copy()" gives new object
> reference feld to felder.
> And because feld is declared locally, the it is null after the sub and so
> is also felder.
> 
> Perhaps you need to do "felder = feld.Copy()" manually with for each...
> 
> Jussi
> 
> 
> 
> 
> On Wed, Feb 22, 2012 at 18:41, Rolf-Werner Eilert <
> eilert-sprachen at ...221...> wrote:
> 
> > Now, this is a strange one :-) and I really have no idea what goes wrong
> > here.
> >
> > I've got a dialog which loads a list of names. I'm keeping such SUBs
> > that deal with files in a module called ldsv (brief for load-save).
> >
> > The dialog's part is simple, "ls" is the listbox:
> >
> > PRIVATE felder AS NEW String[]
> >
> > PUBLIC SUB ls_Click()
> >
> >
> >   Label1.Text = "Nr. " & schlyssel[ls.Index] & ": " & ls[ls.Index].Text
> > 'here we jump into the SUB:
> >   ldsv.ListeKundeFelder(schlyssel[ls.Index], felder)
> > 'now we should see the number of fields loaded:
> >   lblTitel.Text = CStr(felder.Count)
> >
> > END
> >
> >
> > Now the SUB in module ldsv:
> >
> > PUBLIC SUB ListeKundeFelder(schlysselnr AS String, felder AS String[])
> > DIM t$ AS String
> > DIM feld AS NEW String[]
> >
> >   felder.Clear
> >
> >   t$ = File.Load(pfadKunden &/ schlysselnr & ".kunde")
> >   t$ = Tag2Str(t$)
> >
> >   feld = Split(t$, Chr$(10))
> >
> >   IF feld[0] = "#!Stein3.1" THEN
> >     feld.Delete(0, 2)               'das #! und die ID können weg
> >     felder = feld.Copy()
> >   END IF
> >
> > END
Perhaps ... If feld[0] <> "#!Stein3.1" then felder=feld.Copy is never
executed! Try

  IF feld[0] = "#!Stein3.1" THEN
    feld.Delete(0, 2)               'das #! und die ID können weg
  END IF
  felder = feld.Copy()






More information about the User mailing list