AScan() mit Leerstring [ERLEDIGT]
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
AScan() mit Leerstring [ERLEDIGT]
Hi,
gerade ist mir etwas aufgefallen, was ich gar nicht glauben konnte. Was aber nicht heißen soll, das es nicht doch korrekt ist, ich aber den Sinn nicht verstehe.
Vorgabe ist Array, in dem gesucht wird. Suche ich über AScan() mit einem richtigen Wert, dann wird mir die Stelle zurückgegeben, an dem der Wert im Array steht. Suche ich mit einem ungültigen Wert, ergibt die Suche 0. Suche ich aber mit einem Leerstring, dann ergibt die Suche immer 1. Ist das korrekt so? Das ein Leersting möglich ist, liegt daran, dass eine Routine ein Array auf Ergebnisse durchsucht. Da kann es schonmal passieren, dass es Leerstrings gibt. Aber das dann eine 1 zurückgeliefert wird?
gerade ist mir etwas aufgefallen, was ich gar nicht glauben konnte. Was aber nicht heißen soll, das es nicht doch korrekt ist, ich aber den Sinn nicht verstehe.
Vorgabe ist Array, in dem gesucht wird. Suche ich über AScan() mit einem richtigen Wert, dann wird mir die Stelle zurückgegeben, an dem der Wert im Array steht. Suche ich mit einem ungültigen Wert, ergibt die Suche 0. Suche ich aber mit einem Leerstring, dann ergibt die Suche immer 1. Ist das korrekt so? Das ein Leersting möglich ist, liegt daran, dass eine Routine ein Array auf Ergebnisse durchsucht. Da kann es schonmal passieren, dass es Leerstrings gibt. Aber das dann eine 1 zurückgeliefert wird?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: AScan() mit Leerstring
verstehe ich jetzt nicht....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: AScan() mit Leerstring
Zeig doch mal ein Musterarray. Ist das mehrdimensional? Und wie sieht der Suchbegriff aus? Und die Codezeile mit dem AScan()?
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: AScan() mit Leerstring
Code: Alles auswählen
testarray := {"1","2","3","4"}
Ascan(testarray,"2") = 2
AScan(testarray,"lkhf") = 0
AScan(testarray,"") = 1
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Re: AScan() mit Leerstring
Hallo Manfred,
das könnte etwas mit folgendem Sachverhalt zu tun haben:
Da das Ergebnis mit Leerstrings nicht immer vorrauszusehen ist, verwende ich lieber Empty():
mfg
Christian
das könnte etwas mit folgendem Sachverhalt zu tun haben:
Code: Alles auswählen
SET EXACT OFF
? "A" = "" // Ergebnis: .T.
Code: Alles auswählen
n := AScan( aArray, {|x| Empty(x) } )
Christian
- mini990
- 1000 working lines a day
- Beiträge: 592
- Registriert: Sa, 28. Jan 2006 9:44
- Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
- Danksagung erhalten: 1 Mal
Re: AScan() mit Leerstring
Trim verwenden.....
Suche nach "" ergibt 1
Suche nach " " ergibt 0
Gruß Stefan
Suche nach "" ergibt 1
Suche nach " " ergibt 0
Gruß Stefan
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: AScan() mit Leerstring
Numerische Werte wären einfacher, lieber Manfred...
Was ergibt denn
Was ergibt denn
Code: Alles auswählen
npos:= AScan( testarray, {|x| x==""})
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: AScan() mit Leerstring
Hi Herbert,
das ergibt dann 0 auf den ersten Blick des Tests.
OK, es gibt da wohl eine Umgehung, bzw. einen "Sonderstatus". Aber da muß man erstmal drauf kommen. In der Anleitung steht auch was mit Set EXACT. Wenn man das setzt, dann ergibt es auch 0.
Also Christians Vermutung war richtig. Manmanman
das ergibt dann 0 auf den ersten Blick des Tests.
OK, es gibt da wohl eine Umgehung, bzw. einen "Sonderstatus". Aber da muß man erstmal drauf kommen. In der Anleitung steht auch was mit Set EXACT. Wenn man das setzt, dann ergibt es auch 0.
Also Christians Vermutung war richtig. Manmanman
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: AScan() mit Leerstring [ERLEDIGT]
Manfred,
genau deswegen hatte ich gefragt, ob Du = oder == benutzt.
Jan
genau deswegen hatte ich gefragt, ob Du = oder == benutzt.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: AScan() mit Leerstring [ERLEDIGT]
Und ich verstehe nicht, wo Du es meinst? Ich mache Ascan() und erhalte einen Wert. Den Frage ich nur ab, ob er größer 0 ist. Wo soll ich = oder == einsetzen?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: AScan() mit Leerstring [ERLEDIGT]
... im AScan() machst Du doch eine Abfrage auf irgendwelche Werte, oder? macht man jedenfalls normalerweise
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: AScan() mit Leerstring [ERLEDIGT]
Schau doch einfach mal oben, wie ich es mache. Da ist nichts mit = oder ==.
Oder schreibe Deine AScan Variante auf, bevor wir hier wieder unendlich diskutieren
Oder schreibe Deine AScan Variante auf, bevor wir hier wieder unendlich diskutieren
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: AScan() mit Leerstring [ERLEDIGT]
Richtig. Aber das wußte ich bei meiner Frage noch nicht. Wenn Du den AScan() gemacht hättest wie in Herberts Beispiel, dann gäbe es den Vergleich. Und da hättest Du den == einbauen können.
Der Punkt ist, das Du das auf Deinem Weg (der ja absolut korrekt ist) nur mit SET EXACT hinbekommst. Den Wert mußt Du vorher wegsichern, und hinterher wiederherstellen. Machst Du das im AScan() mit dem Codeblock, dann hast Du auch ein Exact, aber eben wirklich nur für diese Suche. Ich finde das angenehmer als sichern und wiederherstellen. Man kann das auch nicht vergessen (mit allen unerwarteten Konsequenzen), weil das ja unnötig ist.
Jan
Der Punkt ist, das Du das auf Deinem Weg (der ja absolut korrekt ist) nur mit SET EXACT hinbekommst. Den Wert mußt Du vorher wegsichern, und hinterher wiederherstellen. Machst Du das im AScan() mit dem Codeblock, dann hast Du auch ein Exact, aber eben wirklich nur für diese Suche. Ich finde das angenehmer als sichern und wiederherstellen. Man kann das auch nicht vergessen (mit allen unerwarteten Konsequenzen), weil das ja unnötig ist.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: AScan() mit Leerstring [ERLEDIGT]
Da hast Du vollkommen Recht. Ich merke das jetzt auch, dass das keine gute Lösung war von mir. Aber mit einem Leerstring suchen...? Wer kommt auf so eine bekloppte Idee? Naja, jetzt wissen wir es. Aber das ist nun mal das Problem von Routinen, die in der Theorie klappen, aber in der Praxis eben solche Dinge zeigen.
Naja, wieder was dazugelernt.
Naja, wieder was dazugelernt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: AScan() mit Leerstring [ERLEDIGT]
OK, aber in mehrdimensionalen Arrays scheint das so nicht zu klappen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: AScan() mit Leerstring [ERLEDIGT]
Was scheint da nicht zu klappen? Ich arbeite da ständig so.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: AScan() mit Leerstring [ERLEDIGT]
Es gibt eine Fehlermeldung bei mir.
Und das obwohl ich mit einem Text einen Text suche.Parameter hat falschen Typ.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: AScan() mit Leerstring [ERLEDIGT]
Manfred,
wenn Du mehrdimensional suchst, dann muß Du auch angeben, in welcher Spalte Du suchst. Läßt Du das weg, dann suchst Du nach dem gesamten Unterarray. Also z. B.sucht nach der exakten Schreibweise "Banane" (Achtung: Auch keine Leerzeichen dahinter!) in der dritten Array-Spalte.
Jan
wenn Du mehrdimensional suchst, dann muß Du auch angeben, in welcher Spalte Du suchst. Läßt Du das weg, dann suchst Du nach dem gesamten Unterarray. Also z. B.
Code: Alles auswählen
nPosition := AScan(aArray, {|x| x[3] == "Banane"})
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: AScan() mit Leerstring [ERLEDIGT]
Ja, jetzt ist es auch klar und es klappt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!