AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi String lässt sich nicht in die Datei schreiben...
Thema durchsuchen
Ansicht
Themen-Optionen

String lässt sich nicht in die Datei schreiben...

Ein Thema von Ricane · begonnen am 10. Dez 2003 · letzter Beitrag vom 14. Mär 2004
Antwort Antwort
Seite 2 von 2     12   
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: String lässt sich nicht in die Datei schreiben...

  Alt 13. Mär 2004, 21:42
Moin Thunder,

erst einmal herzlich Willkommen hier in der Delphi-PRAXiS.

Das Problem ist, dass StringReplace intern AnsiPos verwendet um die Position des zu ersetzenden Zeichens zu finden.
AnsiPos benutzt AnsiStrPos, eine Funktion für nullterminierte Strings.
Es wird also geprüft, ob der String zu Ende ist, also ein Nullbyte auftaucht, was bei jedem gefundenen Muster, dass mit einer #00 beginnt der Fall ist, und somit können solche Muster nicht gefunden werden.

Die Einzige Abhilfe wäre hier sich das StringReplace selber zu erstellen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: String lässt sich nicht in die Datei schreiben...

  Alt 13. Mär 2004, 21:42
Hi,
Kannst du nicht schon beim Einlesen mit dem Filestream die #0-Zeichen ersetzen? Du könntest die Daten z.B. zuerst in einem Puffer speichern und diesen per for-Schleife durchgehen, bevor der Puffer an den Ergebnis-String angehängt wird...
Dani H.
  Mit Zitat antworten Zitat
nur-ein-weiterer-thunder

Registriert seit: 13. Mär 2004
2 Beiträge
 
#13

Re: String lässt sich nicht in die Datei schreiben...

  Alt 13. Mär 2004, 22:07
Erstmal Dank euch beiden, so wie es aussieht, werd ich also um eine FOR-Schleife nicht drumherum kommen
Bisher hab ich mich nämlich durch FileStream.Read(ReturnStr[1],filestream.size); gut davor drücken können

Naja, mal schaun
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: String lässt sich nicht in die Datei schreiben...

  Alt 14. Mär 2004, 00:12
Moin Thunder,

Du kannst auch weiterhin so einlesen, am besten dann aber in eine Hilfsvariable.
Das eigentliche Ziel initialisierst Du dann

Delphi-Quellcode:
// Annahme: #00 wird aus dem Ursprung gelöscht
ReturnStr := StringOfChar(#00,FileStream.Size);
und anschliessend überträgst Du in einer Schleife die eingelesenen Daten in ReturnStr.
Hierbei brauchst Du dann noch eine Variable als Index für ReturnStr[..], und lässt immer die #00 weg beim Übertragen.

Zum Schluss noch ein

ReturnStr := trimright(ReturnStr); und schon hast Du das Gewünschte.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 06:36 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