Autor Thema: Erase in IsElement gibt "튈ǽ튈ǽ퉘ǽ؄홀Ҹ" zurück  (Gelesen 1367 mal)

Offline daija

  • Aktives Mitglied
  • ***
  • Beiträge: 104
  • Geschlecht: Männlich
  • The Second Place is the first loser
Hallo,

ich habe ein berechnetes Feld (Mehrfachwerte), in welches Namen eingetragen werden (per Button).
Jetzt habe ich ein LS Button, der das Feld durchsuchen soll und den Names des aktullen Notes Users entfernen soll, sofern dieser in der Liste enthalten ist.
Wenn ich mir im Debugger den Ablauf anschaue, ist alles OK, aber im wenn ich mir dann das Ergebis anschaue, steht im Feld ein komischer Wert, die wie folgt aussieht: "튈ǽ튈ǽ퉘ǽ؄홀Ҹ"

Was ist denn hier kaputt?

Hier der LS Code:


Code

Set nam = New NotesName(s.UserName)
	Set item = doc.GetFirstItem("confirmed_worker")
	anz = 0
	
	Forall value In item.Values
		teilnehmer(item.Values(anz)) = item.Values(anz)
		anz = anz + 1	
	End Forall
	
	If Iselement(teilnehmer(nam.Common)) Then
		Erase teilnehmer(nam.Common)
	End If
	
	Call doc.ReplaceItemValue("confirmed_worker",teilnehmer)
	Call doc.Save(True,False)
	
Zufriedenheit ist Stillstand und Stillstand ist Rückschritt

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Erase in IsElement gibt "튈ǽ튈ǽ퉘ǽ
« Antwort #1 am: 23.08.12 - 15:42:58 »
teilnehmer ist eine Liste. Soviel ich weiss, kann man Listen nicht in Felder speichern.. das was da bei Dir im Feld landet sind wahrscheinlich Pointer- Adressen oder sonstwas... Du musst Deine Liste erst wieder in ein Array wandeln, bevor Du das einem Feld zuweisen kannst...

Oder Du schreibst den Code so um, dass gar keine Liste verwendet wird...

Code
varTeilnehmer = doc.GetItemValue("confirmed_worker")
varTeilnehmer = FullTrim( replace( varTeilnehmer , nam.Common , "" ) )
call doc.ReplaceItemValue( "confirmed_worker" , varTeilnehmer )

EDIT: Ich habe die Version übersehen: in R5 gab es Replace noch gar nicht...
Dann musst Du doch mit einer For- Schleife durch:
Code
Dim teilnehmerNew() as String
varTeilnehmer = doc.GetItemValue("confirmed_worker")
k = 0
For i = 0 to ubound( varTeilnehmer )
  If varTeilnehmer(i) <> nam.Common then
    redim preserve teilnehmerNew(k) as String
    teilnehmerNew(k) = varTeilnehmer(i)
    k = k + 1
  End If
Next
« Letzte Änderung: 23.08.12 - 15:47:18 von Tode »
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline daija

  • Aktives Mitglied
  • ***
  • Beiträge: 104
  • Geschlecht: Männlich
  • The Second Place is the first loser
Re: Erase in IsElement gibt "튈ǽ튈ǽ퉘ǽ؄홀Ҹ" zurück
« Antwort #2 am: 23.08.12 - 15:55:08 »
Ah' prima. Warum kompliziert wenn es auch einfach geht  :)

Vielen Dank. So klappt es viel besser!
Zufriedenheit ist Stillstand und Stillstand ist Rückschritt

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz