Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: AC am 29.12.03 - 15:49:21

Titel: Nullbyte u. Statische String u. trim - akad. Frage
Beitrag von: AC am 29.12.03 - 15:49:21
Rein "akademische" Frage von mir.
Ist jetzt nicht sooo wichtig , vielleicht weiß es einer der Cracks hier

Mir ist ein Notes - LS Buch in die Hände gefallen und ich habs mal durchgeschmökert.
Dabei ist mir folgendes darin aufgefallen

Ein String von der Länge 11 wirde definiert.

Dim astr As String * 11
Definiert man nun eine einen Wert mit weniger Stellen hierfür, dann werden die restlichen Zeichen
mit "Nullbyte" aufgefüllt. Soweit - so gut

z.B.
astr = "Anfang"

hängt man hier nun einen String noch hinten dran, dann kommt bei der Ausgabe trotzdem nur der erste Teil
astr = astr + "Ende"
Print astr  '// es erscheint nur Anfang

Kann ich auch noch nachvollziehen.

Trim benutze ich sonst nur bei "spaces" trotzdem habe ich es ausprobiert und das scheint auch bei diesen Nullbytes zu funktionieren.

astr = Trim(astr) + "Ende"
print astr  '// es erscheint nur AnfangEnde als Ausgabe

Dann behauptet der Autor chr(0) wäre äquivalent zu einem Nullbyte.

astr = "Anfang"  & Chr(0) & "Ende"    
Print liefert hier nun wieder wie vermutet nur "Anfang"

Mache ich jetzt ein Trim auf   ("Anfang"  & Chr(0))    so geht es nun aber auch nicht mehr.

astr = Trim("Anfang"  & Chr(0)) + "Ende"   
'// Liefert nur "Anfang"

Demzufolge muß hier irgendetwas anders sein als beim "automatischen" Auffüllen mit Nullbytes (oben).

Schreibt der Autor Blech oder liegts daran, daß Trim eigentlich gar nicht für das gedacht ist ?  
Oder im Gegnsatz zurm Autor Chr(0) <> Nullbyte ?

Bei mir Win2000 und 5.0.10 deutsch

Wie oben geschrieben, keine akute Anwendung in der ich fixe strings einsetzte ,  bin nur so beim lesen drauf gestossen.

Grüßla, Holcomb
Titel: Re:Nullbyte u. Statische String u. trim - akad. Frage
Beitrag von: Glombi am 29.12.03 - 15:55:03
In der Designer Hilfe (R6) steht das dazu:

Dim varName As String [* num]
The optional num argument specifies that varName is a fixed-length string variable of num characters. A fixed-length string variable is initialized to a string of null characters (the character Chr(0)).

Sieht so aus, als ob der Autor dort "abgeschrieben" hat.

Andreas
Titel: Re:Nullbyte u. Statische String u. trim - akad. Frage
Beitrag von: AC am 29.12.03 - 16:00:49
Hi Glombi,

mich wunderts nur warums in einem Fall funktioniert im anderen nicht, wenn doch laut Autor Nullbyte und Chr(0) identisch sind.

Dim astr As String * 11
   Dim astr As String * 11
   astr = "Anfang"
   astr = Trim(astr) + "Ende"
   Print astr
   
=> Liefert "AnfangEnde"


Dim astr As String * 11
   astr = "Anfang"
   astr = "Anfang"  & Chr(0)    
   astr = Trim(astr) &  "Ende"
      Print astr
=> Liefert nur "Anfang"


Rätselnd, Holcomb
PS Ich weiß, man kann ruhig fragen ob  ich im Moment keine anderen Probleme habe ;-))))
Titel: Re:Nullbyte u. Statische String u. trim - akad. Frage
Beitrag von: Glombi am 30.12.03 - 10:42:31
Wenn man das jeweils durch den Debugger laufen läßt, treten die Unterschiede zu Tage:
Durch
dim astr as string *11
wird ein String reserviert, der durch ein Null-Byte begrenzt ist. Nach der ersten Zuweiseung
aastr = "Anfang"
entfällt die Begrenzung durch das Null-Byte. Im Debugger sieht man die Gänsefüße " am Ende des String.

Durch astr = "Anfang" & chr(0) wird das Null-Byte wieder angehängt. Die Trim-Funktion kann damit wohl nichts angangen.

Andreas
Titel: Re:Nullbyte u. Statische String u. trim - akad. Frage
Beitrag von: AC am 30.12.03 - 10:57:20
Wenn man das jeweils durch den Debugger laufen läßt, treten die Unterschiede zu Tage:
Durch
dim astr as string *11
wird ein String reserviert, der durch ein Null-Byte begrenzt ist. Nach der ersten Zuweiseung
aastr = "Anfang"
entfällt die Begrenzung durch das Null-Byte. Im Debugger sieht man die Gänsefüße " am Ende des String.

Durch astr = "Anfang" & chr(0) wird das Null-Byte wieder angehängt. Die Trim-Funktion kann damit wohl nichts angangen.

Andreas

Hi Andreas,

der Lebkuchenwahnsinn hat bei mir zugeschlagen, sonst wäre ich wohl selbst auf die Idee gekommen mal das Ganze im Debugger mal nachzuverfolgen.

Ich habs jetzt auch gesehen was abgeht mit der Variable.


Dann ist aber das was der Autor des Buchs da seinem Leser weiß machen will etwas BullS***

Mir war eh nicht klar, warum der Autor mehrere Seiten des Buches auf dieses Thema verschwendete.

Merci, für die Mühe, daß Du es Dir selbst angesehen hast.

Guten Rutsch Dir und der Family
Holcomb
Titel: Re:Nullbyte u. Statische String u. trim - akad. Frage
Beitrag von: Semeaphoros am 30.12.03 - 11:00:09
Zeilengeldartiges Denken, ist leider weit verbreitet. Gewisse Bücher müssen eben einen gewissen Umfang haben ........ man darf da ruhig an Karl Valentin in der Buchhandlung beim Buchkauf denken: "..... Könnens mir da a Pfund runterschneiden? ....."

Ansonsten hat der Autor eben nicht selber experimentiert sondern wie Andreas schon nahegelegt hat, einfach abgeschrieben ..... tja ....
Titel: Re:Nullbyte u. Statische String u. trim - akad. Frage
Beitrag von: AC am 30.12.03 - 11:13:32
Hi Semeaphoros,

zum Autor: Es steht zu lesen über ihn:
Er hat selbst  ein dickes C++ Buch geschrieben (ich habs nicht) und arbeitet als Programmierer mit Java, C, C++ und anderen IDEs.
Ferner entwickelt er aber acuh Workflow Anwendungen unter Domino und sein Hauptgebiet sind Lösungen im Client Server Umfeld....
Tjaaa.

Soviel zu dem Thema.
Guten Rutsch, Holcomb
Titel: Re:Nullbyte u. Statische String u. trim - akad. Frage
Beitrag von: Glombi am 30.12.03 - 11:16:35
Das der Autor aus der C++ Ecke kommt und was mit Domino macht, habe ich mir fast gedacht. Sonst hätte er wohl keinen gesteigerten Wert auf die Beschreibung der fixed-length Strings gelegt, die insb. bei der Parameterübergabe von Notes nach C und umgekehrt eine wichtige Rolle spielen.
Evtl. hat er es aber übertrieben oder unklar ausgedrückt. Ich wollte dem Autor aber nicht zu Nahe treten. Beurteilen kann ich das erst, wenn ich die Stelle gelesen habe. Wie heißt denn das gute Werk?

Andreas
Titel: Re:Nullbyte u. Statische String u. trim - akad. Frage
Beitrag von: AC am 30.12.03 - 11:20:29

 Wie heißt denn das gute Werk?

Andreas

Ich schick Titel und Autor jedem den es hier interessiert mit Privatnachricht. Vielleicht liest ja der Autor hier sogar mit  ;-)

Hab das Ding nur durchblättert und nachgesehen ob ich was finde, was inetressant ist bzw. ich nicht kenne.


Holcomb