Autor Beitrag
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Fr 24.06.11 16:22 
Hi, gibts einen Grund für a statt b oder andersherum?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var
  filename, data: AnsiString;
begin
  with TFileStream.Create(filename, fmCreate) do
    begin

  1. ausblenden Delphi-Quelltext
    1:
    Write(data[1], Length(data));					

  2. ausblenden Delphi-Quelltext
    1:
    Write(PChar(data)^, Length(data));					

ausblenden Delphi-Quelltext
1:
2:
3:
    Free;
  end;
end;


Dankeschön.

_________________
Steht der Bauer im Gemüse, hat er später grüne Füße.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 24.06.11 16:36 
Bei a wird zusätzlich UniqueString aufgerufen um sicherzustellen, dass der Referenzzähler nicht größer als eins ist (also mehrere Referenzen existieren). Deshalb ist das ein wenig langsamer.

Zudem halte ich die zweite Version auch für sinnvoller von der Syntax her:
Ich nehme den Pointer auf ein Zeichen und dereferenziere diesen Pointer.

Nebenbei wird das auch in den VCL-Quelltexten so benutzt.

Für diesen Beitrag haben gedankt: WeBsPaCe
WeBsPaCe Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Fr 24.06.11 23:19 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Zudem halte ich die zweite Version auch für sinnvoller von der Syntax her:
Ich nehme den Pointer auf ein Zeichen und dereferenziere diesen Pointer.

Geschmackssache: wenn man String als Array of Char sieht?

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Bei a wird zusätzlich UniqueString aufgerufen um sicherzustellen, dass der Referenzzähler nicht größer als eins ist (also mehrere Referenzen existieren). Deshalb ist das ein wenig langsamer.

Okay. Macht Sinn. Dann wollen wir mal optimieren. ;-)

Danke!

_________________
Steht der Bauer im Gemüse, hat er später grüne Füße.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 25.06.11 05:39 
user profile iconWeBsPaCe hat folgendes geschrieben Zum zitierten Posting springen:
Geschmackssache: wenn man String als Array of Char sieht?
Dass das auch Sinn macht, wenn man es weiß, ist klar.

Aber wenn man nicht weiß was da passiert, denkt man eher, dass nur das eine Zeichen übergeben wird. ;-)