Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   ANSISTRING unter Linux verfügbar ??? (https://www.delphipraxis.net/196723-ansistring-unter-linux-verfuegbar.html)

himitsu 14. Jun 2018 11:48

AW: ANSISTRING unter Linux verfügbar ???
 
Zitat:

Zitat von bernhard_LA (Beitrag 1404814)
hier weitere Informationen zur Verwendung :
Ansistring wird in einigen DLLs verwendet um Daten von C++ , Matlab und Delphi auszutauschen , im reinen Delphi Kernprogramm in Funktionen wie im Beispiel


Delphi-Quellcode:
 
FS: TFileStream;
SaveString: Ansistring;

begin
  FS := TFileStream.Create(FileName, fmCreate);
  try
    if SaveString <> '' then
      FS.Write(Pointer(SaveString)^, Length(SaveString) * SizeOf(AnsiChar));
  finally
    FS.Free;
  end;
Ziel OS : entweder Windows x64 oder UBUNTU x64 , vermutlich sind die Daten meistens ASCII ...



Das riecht geradezu nach einem Delphi-Referenz durchsuchenTStringStream.

Rollo62 14. Jun 2018 12:43

AW: ANSISTRING unter Linux verfügbar ???
 
Nicht das ich mit Ansi unter Linux was machen möchte, aber

Schonmal das gesehen, habs nicht gecheckt, könnte evtl. hilfreich sein.

himitsu 14. Jun 2018 12:58

AW: ANSISTRING unter Linux verfügbar ???
 
Zitat:

Zitat von Rollo62 (Beitrag 1404822)
Nicht das ich mit Ansi unter Linux was machen möchte, aber

Warum nicht?

UTF-8 ist im Prinzip auch nur ANSI, bzw. ein MultyByteCharset mit der Codepage 65001
und selbst Unicode ist ein MultyByteCharset mit fester Länge und der Codepage 1200, bzw. Big Endian mit der Codepage 1201.



Wie gesagt, man kann alles irgendwie selber machen, aber nativ und ohne große Umstände gibt es halt nur noch Unicode oder eben TEncoding. Dazu dann noch TStringStream, TStringList, IOUtils.TFile (ReadAllLines, ReadAllText, WriteAllLines, WriteAllText).

Rollo62 14. Jun 2018 13:34

AW: ANSISTRING unter Linux verfügbar ???
 
Zitat:

Warum nicht?
Die Umstellung auf Unicode war schon nervig genug, warum also wieder zurück :stupid:

Aber im Ernst:
Ja klar mache ich auch noch von Zeit zu Zeit mit 8-Bit Chars rum,
und ich nutze auch UTF-8 dafür, im Single-Byte-Modus.
Z.B. wenn ich Daten von kleinen Microcontrollern gesendet bekomme, oder aus alten DB.

Trotzdem achte ich bei neuen Strukturen auf UTF-8 (echte Unicodefähigkeit) wo immer möglich,
und werfe Altes über Bord.
Das gilt dann auch für Linux.

Rollo

himitsu 14. Jun 2018 13:46

AW: ANSISTRING unter Linux verfügbar ???
 
Gerade bei Dateien/Stream gibt es bei Multiplatform gern paar kleinere Problemchen.

z.B. nutzen im Windows viele Programme ANSI als Default, wenn eine Textdatei keinen BOM hat,
während im MacOS die selben Dateien aber per Default als UTF-8 behandelt werden wollen.

In Linux/Mac speicherst du UTF-8 und im Windows wird das als ANSI mit "komischen" Umlauten ausgelesen. :stupid:

bernhard_LA 14. Jun 2018 18:33

AW: ANSISTRING unter Linux verfügbar ???
 
@Uwe

also so dann :


Delphi-Quellcode:
 {$ifdef MSWINDOWS} 
         /// AnsiString = AnsiString ... eh schon da
         {$endif } 
         {$ifdef LINUX}  type AnsiString = TBytes;
         {$endif }

jaenicke 14. Jun 2018 19:04

AW: ANSISTRING unter Linux verfügbar ???
 
Warum benutzt du denn nicht einfach überall TBytes? Wenn du von Datenaustausch sprichst, hört sich das so nach Missbrauch von AnsiString als Datencontainer an.

Uwe Raabe 14. Jun 2018 21:22

AW: ANSISTRING unter Linux verfügbar ???
 
Zitat:

Zitat von jaenicke (Beitrag 1404856)
Warum benutzt du denn nicht einfach überall TBytes? Wenn du von Datenaustausch sprichst, hört sich das so nach Missbrauch von AnsiString als Datencontainer an.

:thumb:

p80286 14. Jun 2018 21:52

AW: ANSISTRING unter Linux verfügbar ???
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1404879)
Zitat:

Zitat von jaenicke (Beitrag 1404856)
Warum benutzt du denn nicht einfach überall TBytes? Wenn du von Datenaustausch sprichst, hört sich das so nach Missbrauch von AnsiString als Datencontainer an.

:thumb:

:thumb:
Wobei die älteren Delphis TBytes leider nicht zur Verfügung stellen.

Gruß
K-H

KodeZwerg 14. Jun 2018 21:55

AW: ANSISTRING unter Linux verfügbar ???
 
Zitat:

Zitat von p80286 (Beitrag 1404883)
Zitat:

Zitat von Uwe Raabe (Beitrag 1404879)
Zitat:

Zitat von jaenicke (Beitrag 1404856)
Warum benutzt du denn nicht einfach überall TBytes? Wenn du von Datenaustausch sprichst, hört sich das so nach Missbrauch von AnsiString als Datencontainer an.

:thumb:

:thumb:

:thumb:

Aber nen Array of Byte


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 Uhr.
Seite 3 von 5     123 45      

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