Autor Thema: Nullbyte u. Statische String u. trim - akad. Frage  (Gelesen 2222 mal)

Offline AC

  • Senior Mitglied
  • ****
  • Beiträge: 367
  • Geschlecht: Männlich
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
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Introduction
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Solution Development

"...Glücklich ist, wer vergisst, was doch nicht zu ändern ist..."

Glombi

  • Gast
Re:Nullbyte u. Statische String u. trim - akad. Frage
« Antwort #1 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

Offline AC

  • Senior Mitglied
  • ****
  • Beiträge: 367
  • Geschlecht: Männlich
Re:Nullbyte u. Statische String u. trim - akad. Frage
« Antwort #2 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 ;-))))
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Introduction
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Solution Development

"...Glücklich ist, wer vergisst, was doch nicht zu ändern ist..."

Glombi

  • Gast
Re:Nullbyte u. Statische String u. trim - akad. Frage
« Antwort #3 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

Offline AC

  • Senior Mitglied
  • ****
  • Beiträge: 367
  • Geschlecht: Männlich
Re:Nullbyte u. Statische String u. trim - akad. Frage
« Antwort #4 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
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Introduction
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Solution Development

"...Glücklich ist, wer vergisst, was doch nicht zu ändern ist..."

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Nullbyte u. Statische String u. trim - akad. Frage
« Antwort #5 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 ....
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline AC

  • Senior Mitglied
  • ****
  • Beiträge: 367
  • Geschlecht: Männlich
Re:Nullbyte u. Statische String u. trim - akad. Frage
« Antwort #6 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
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Introduction
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Solution Development

"...Glücklich ist, wer vergisst, was doch nicht zu ändern ist..."

Glombi

  • Gast
Re:Nullbyte u. Statische String u. trim - akad. Frage
« Antwort #7 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
« Letzte Änderung: 30.12.03 - 11:17:38 von Glombi »

Offline AC

  • Senior Mitglied
  • ****
  • Beiträge: 367
  • Geschlecht: Männlich
Re:Nullbyte u. Statische String u. trim - akad. Frage
« Antwort #8 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
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Introduction
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Solution Development

"...Glücklich ist, wer vergisst, was doch nicht zu ändern ist..."

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz