AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie kann ich Schreibweise im Filestream optimieren ?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich Schreibweise im Filestream optimieren ?

Ein Thema von Gandimann · begonnen am 9. Dez 2020 · letzter Beitrag vom 9. Dez 2020
Antwort Antwort
Gandimann

Registriert seit: 10. Dez 2008
105 Beiträge
 
#1

Wie kann ich Schreibweise im Filestream optimieren ?

  Alt 9. Dez 2020, 18:35
Hello Friends,
ich schreibe in meinem Custom File ein Paar Strings via Filestream. Aber es kommt immer eine Leerzeichen nach jedem Char.

Es sollte LAMP schreiben aber es schreibt L A M P

Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
  var
  fs: TFileStream;
begin

fs := TFileStream.Create('C:\Test1.depp',
                 fmCreate or fmOpenWrite or fmShareDenyWrite);
try
  fs.Position := 23 ;
  fs.WriteBuffer((Char($4c))+(Char($41))+(Char($4d))+(Char($50)),8);

  finally
  fs.Free;;
  end;
end;
Wie kann ich LAMP (ohne Leerzeichen) schreiben ?

Thanks in advance
Was ist die mehrzahl von Mopp ? !
genau !... Möpse........oder ?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Wie kann ich Schreibweise im Filestream optimieren ?

  Alt 9. Dez 2020, 19:11
Wenn du Ansi-Zeichen statt Unicode schreiben möchtest, musst du AnsiChars oder AnsiStrings verwenden. Dafür kannst du dann aber auch keine Unicodezeichen verwenden. Bist du sicher, dass du das möchtest?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Gandimann

Registriert seit: 10. Dez 2008
105 Beiträge
 
#3

AW: Wie kann ich Schreibweise im Filestream optimieren ?

  Alt 9. Dez 2020, 19:32
Leider ja...
Nebenbei kann ich zwar versuchen alles auf ANSI um zu schreiben.
Was ist die mehrzahl von Mopp ? !
genau !... Möpse........oder ?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Wie kann ich Schreibweise im Filestream optimieren ?

  Alt 9. Dez 2020, 20:36
Dann bleibt dir nur auch wirklich überall mit AnsiString usw. zu arbeiten.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.049 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Wie kann ich Schreibweise im Filestream optimieren ?

  Alt 9. Dez 2020, 20:58
Also das Programm, das diese Datei dann liest, kann kein UTF-16LE? Nicht mal mit BOM #$FFFE?
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Gandimann

Registriert seit: 10. Dez 2008
105 Beiträge
 
#6

AW: Wie kann ich Schreibweise im Filestream optimieren ?

  Alt 9. Dez 2020, 21:18
Thanks Friends,
ich habe hin gegriegt :

Delphi-Quellcode:
procedure TForm1.btn2Click(Sender: TObject);
 var
  buf: array[0..10] of Byte;
   fs: TFileStream;
begin
    fs := TFileStream.Create('C:\Test1.file',
                 fmCreate or fmOpenWrite or fmShareDenyWrite);
  buf[0] := $4b;
  buf[1] := $4f;
  buf[2] := $52;
  buf[3] := $46;
     try
    fs.Position := 23;
    fs.WriteBuffer(buf, 4);
    fs.Position := 0;
    buf[0] := $01;
    buf[1] := $00;
    buf[2] := $01;
    buf[3] := $14;
    fs.WriteBuffer(buf, 4);
    fs.Position := 4;
     buf[0] := $00;
    buf[1] := $00;
    buf[2] := $29;
    buf[3] := $64;
    fs.WriteBuffer(buf, 4);

  finally
    fs.Free;
    ;
  end;
end;
Was ist die mehrzahl von Mopp ? !
genau !... Möpse........oder ?
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

AW: Wie kann ich Schreibweise im Filestream optimieren ?

  Alt 9. Dez 2020, 22:03
Leider ja...
Nebenbei kann ich zwar versuchen alles auf ANSI um zu schreiben.
Ich würde eher versuchen, UTF-8 (ohne BOM) einzusetzen. Das ergibt bei dem String "LAMP" ja genau die gleiche Bytefolge, aber die Wahrscheinlichkeit ist hoch (nahe 100%) dass wenn das andere Programm Unicode kann, es auch UTF8 einlesen möchte.
Delphi Lösungen gibt es sicher, hier eine SO Antwort: https://stackoverflow.com/q/1434413/1974021

Oder auch aus regionalen Quellen: https://www.delphipraxis.net/1378290-post16.html
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Wie kann ich Schreibweise im Filestream optimieren ?

  Alt 9. Dez 2020, 22:16
Das sieht mir überhaupt nicht danach aus als ginge es um Strings im eigentlichen Sinn, sondern um Bytewerte. Dann geht es so viel einfacher:
Delphi-Quellcode:
procedure TForm1.btn2Click(Sender: TObject);
var
  Value: Integer;
  fs: TFileStream;
begin
  fs := TFileStream.Create('C:\Test1.file', fmCreate or fmOpenWrite or fmShareDenyWrite);
  try
    fs.Position := 23;
    Value := $46524F4B;
    fs.WriteBuffer(Value, 4);
    fs.Position := 0;
    Value := $14010001;
    fs.WriteBuffer(Value, 4);
    fs.Position := 4;
    Value := $64290000;
    fs.WriteBuffer(Value, 4);
  finally
    fs.Free;
  end;
end;
Da sollte das gleiche herauskommen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:26 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