AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi an String anhängen - mal wieder Probleme mit #0
Thema durchsuchen
Ansicht
Themen-Optionen

an String anhängen - mal wieder Probleme mit #0

Ein Thema von Martin K · begonnen am 9. Okt 2007 · letzter Beitrag vom 9. Okt 2007
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#1

an String anhängen - mal wieder Probleme mit #0

  Alt 9. Okt 2007, 11:10
Hallo,

also ich hänge zwei Strings an einen vorhandenen String an.
s := s + neuerString1 + neuerString2; Soweit so gut, nur sieht z.B. neuerString1 so aus: #6#0#0#0.
Für das Schreiben in eine Datei ist es unbedingt notwendig, dass neuerString1 4 Byte groß ist, aber wenn ich neuerString1 an s anhänge mit dem obigen Quellcode, werden die letzten 3 Bytes abgeschnitten.

Was tun?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: an String anhängen - mal wieder Probleme mit #0

  Alt 9. Okt 2007, 11:26
Sicher das die bytes nicht später bei einem anderen Aufruf abgeschnitten werden?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: an String anhängen - mal wieder Probleme mit #0

  Alt 9. Okt 2007, 11:28
Die Bytes gehen definitiv wo anders verloren.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: an String anhängen - mal wieder Probleme mit #0

  Alt 9. Okt 2007, 11:32
Öhm, nein, es ist schon an der Stelle wie oben der Code, aber habe selbst grade es mit einem String getestet und festgestellt, dass es geht.
In meinem Speziellen Fall funktioniert es aber nicht, wenn neuerString1 wie folgt festgelegt ist:
var neuerString1: array[0..3] of Char;
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: an String anhängen - mal wieder Probleme mit #0

  Alt 9. Okt 2007, 11:33
Warum nimmst du nicht gleich einen shortstring:
s: String[4];
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: an String anhängen - mal wieder Probleme mit #0

  Alt 9. Okt 2007, 11:35
Zitat von Martin K:
Öhm, nein, es ist schon an der Stelle wie oben der Code, aber habe selbst grade es mit einem String getestet und festgestellt, dass es geht.
In meinem Speziellen Fall funktioniert es aber nicht, wenn neuerString1 wie folgt festgelegt ist:
var neuerString1: array[0..3] of Char;
Damit begiebst du dich auf die Ebene von C-Kompatiblen Strings und dort ist $#00 das Ende des Strings! Und wenn dein Array eingelsen (nach Delphi-String gewandelt) wird, ist auch #$00 das Ende des Strings.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: an String anhängen - mal wieder Probleme mit #0

  Alt 9. Okt 2007, 11:36
Zitat von Bernhard Geyer:
Damit begiebst du dich auf die Ebene von C-Kompatiblen Strings und dort ist $#00 das Ende des Strings! Und wenn dein Array eingelsen (nach Delphi-String gewandelt) wird, ist auch #$00 das Ende des Strings.
Schön und gut, aber wie kann ich ein Array of Char an einen String anhängen, ohne dass mir dabei Bytes verloren gehen?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: an String anhängen - mal wieder Probleme mit #0

  Alt 9. Okt 2007, 11:37
Das geht definitiv auch. Getestet mit BDS2006, siehe Anhang (wovon die Turbo's nur eine Ausgliederung sind)

War ein gutes Gegenbeispiel - er schneidet sie genauso ab...
Miniaturansicht angehängter Grafiken
nullchars_899.png  
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: an String anhängen - mal wieder Probleme mit #0

  Alt 9. Okt 2007, 11:37
Indem du die Steuerzeichen vorher daraus entfernst oder besser eine String nimmst.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: an String anhängen - mal wieder Probleme mit #0

  Alt 9. Okt 2007, 11:41
Was hier noch gar nicht gefragt wurde:

Mit welcher Funktion schreibst du die Daten in die Datei?

Verwendest du einen TFilestream, oder schreibst du mit "writeln" und Konsorten.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz