Converting from std.file.read's void[]
bearophile
bearophileHUGS at lycos.com
Tue Sep 21 16:41:57 PDT 2010
Jonathan M Davis:
> UTF-8 strings are easy because they're the same size as ubytes.
> Casting to char[] for the portion of the data that you want as a string
> seems to work just fine.
D2 string are immutable(char)[] and not char[].
Strings are UTF-8, while the raw bytes you read from a file may contain everything, so in some situations you need to use the validate function.
> But what about other types? Is it the correct thing to
> cast to T[] where T is whatever type the data represents and then index into it
> to get the values that you want of that type and then cast the next section of
> the data to U[] where U is the type for the next section of the data, etc.? Or
> is there a better way to handle this?
It's better to avoid casts when possible, and SafeD may even be restrict their usage.
Take a look at the rawWrite/rawRead methods of std.stdio.File.
Bye,
bearophile
More information about the Digitalmars-d-learn
mailing list