mutable string
Lodovico Giaretta via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Jul 10 13:31:34 PDT 2016
On Sunday, 10 July 2016 at 19:50:28 UTC, Adam Sansier wrote:
> On Sunday, 10 July 2016 at 19:44:01 UTC, Adam D. Ruppe wrote:
>> On Sunday, 10 July 2016 at 19:19:57 UTC, Adam Sansier wrote:
>>> Is it possible to turn temporary char/wchar buffer in to a
>>> string to be used by string functions rather than having to
>>> convert?
>>
>> What string functions in particular? If they are written
>> correctly, it should just work.... mutable char[] can be
>> passed as a char* or const char* with the .ptr property.
>>
>>
>>> I could use C strcmp etc but then I might as well just write
>>> the code in C.
>>
>> meh D rox over C even if you just use C functions
>
> I'm trying to use windows registry functions. This requires
> passing a char(sometimes a TCHAR) buffer.
>
> But I need to compare the results, case insensitive, to a
> string(since that is what D uses). It's being a real pain in
> the butt to deal with the mixture.
>
> I tried using slices, which works for char but not wchar as
> string is not a immutable(wchar). I don't want to use wide
> strings because that doesn't seem to be a "thing" in d.
>
> This whole char vs wchar vs dchar is a big confusing, not in
> what they are but how they all interrelate between D and
> windows and their doesn't seem to be an easy way to convert
> between them all unless one wants to litter their code with
> to!'s.
Well, the main problem I always faced is Windows having quite a
bad string handling...
That said, if you want char[] -> string or wchar[] -> wstring you
can use assumeUnique, which casts a mutable array to an immutable
one.
If you have an array of ubyte, ushort or int, and would like to
use it as a string, you can use assumeUTF, which casts it
respectively to string, wstring or dstring.
But both functions are in fact just casts.
Also keep in mind that in D a string literal will behave as a
string, wstring or dstring based on the type of variable to which
it is assigned.
This are just some hints, as I don't really understand what is
not working for you. Do you mind showing a snippet?
More information about the Digitalmars-d-learn
mailing list