Questione : Problema usando TFileStream:   Conservare e leggere ShortString in Delphi2010

ciao tutti, il

i hanno provato a conservare “ABCDEFGHIJ„ come ShortString in una lima, quando la ho letta dalla lima, get
'ABCDEFGHIJ \ ö di i '. Sembra che là siano più sysbols vengano out.

following siano i miei codici, come dovrebbero io cambiarli per rendergli il lavoro? le punte del

any sono appreciated.

thanks, il

wantime
-------------------------------------------------------------
--------------------------------------------------------------
procedure TForm1.LoadShortStingClick (mittente: TObject); identificazione del
var
: Stringa [10];
begin
  aStream := TFileStream.Create (mpath, fmOpenRead);
aStream.Read (identificazione [1], 10);
Edit2.text: = IDENTIFICAZIONE;
aStream.Free;
end;

procedure TForm1.SaveShortStingClick (mittente: TObject);
var
S: Stringa [10];
begin

S [1]: = “A„;
S [2]: = “B„;
S [3]: = “C„;
S [4]: = “D„;
S [5]: = “E„;
S [6]: = “F„;
S [7]: = “G„;
S [8]: = “H„;
S [9]: = “io„;
S [10]: = “J„;

  aStream := TFileStream.Create (mpath, fmCreate);
aStream.Write (S [1], 10);

  aStream.Free;
end;
class= del

Risposta : Problema usando TFileStream:   Conservare e leggere ShortString in Delphi2010

In Delphi2009 e più nuovo (così il vostro ugualmente), la stringa non è più di 1 byte per carbone, ma byte multipli.

Così, mentre
varietà
 Identificazione:  Stringa [10];

Assomiglia ad un allineamento di 10 byte, esso non è.

Così se fate
  aStream.Read (identificazione [1], 10);

Leggete 10 byte in un allineamento che è allora 10 byte più lunghi. Il risultato è che non conoscete che cosa è nel resto dell'allineamento. Ci è probabilmente una certa schifezza in là che è interpretata come stringa quando provate a metterli nella pubblicazione.
Altre soluzioni  
 
programming4us programming4us