D2010 string ansistring
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
D2010 string ansistring
Arkadaşlar D2010 indirdim ve denemeye başladım. Sanırım D2010 da sonra string yerine ansitring tanımlayacağız. Bir stringi dosyaya yazmaya çalışınca ancak yarısını yazıyor.Tipini ansistring yapınca düzeliyor.
Re: D2010 string ansistring
Yazma işlemi yaparken Length kullanıyorsan string için Length(S)*2 yapmalısın. yada daha genel olarak :
Aşağıdaki makale çok işine yaracaktır:
http://edn.embarcadero.com/article/38693
.
Kod: Tümünü seç
Length(S) * SizeOf(S[1])
http://edn.embarcadero.com/article/38693
.
There's no place like 127.0.0.1
Re: D2010 string ansistring
makaleyi okudum örneğe göre şöyle bir kod yazdım
sonuç şöyle
şu string ansistring işi baş ağrıtacağa benziyor. Delphi neden 2010 da böyle bireye ihtiyaç duydu ki:(
Kod: Tümünü seç
var
aStr : String;
aAnsiStr : AnsiString;
begin
aStr := '123456789';
aAnsiStr := '123456789';
memo1.Lines.Add(Format('aStr:%s',[aStr]));
memo1.Lines.Add(Format('aAnsiStr:%s',[aAnsiStr]));
memo1.Lines.Add(Format('Length(aStr):%d',[Length(aStr)]));
memo1.Lines.Add(Format('Length(aAnsiStr):%d',[Length(aAnsiStr)]));
memo1.Lines.Add(Format('SizeOf(aStr):%d',[SizeOf(aStr)]));
memo1.Lines.Add(Format('SizeOf(aAnsiStr):%d',[SizeOf(aAnsiStr)]));
Kod: Tümünü seç
aStr:123456789
aAnsiStr:123456789
Length(aStr):9
Length(aAnsiStr):9
SizeOf(aStr):4
SizeOf(aAnsiStr):4
Re: D2010 string ansistring
sanırım d2009 ile gelen unicode desteği ile alakalı. Benim anlamadığım string mi kullanıcaz ansistring mi?Lost Soul yazdı:makaleyi okudum örneğe göre şöyle bir kod yazdım
şu string ansistring işi baş ağrıtacağa benziyor. Delphi neden 2010 da böyle bireye ihtiyaç duydu ki:(
Re: D2010 string ansistring
Eğer kullandığınız bileşenlerin fonksiyon ve procedurelarında string tanımlı parametreler var ise sizde işlmlerinizde buna uygun değişken yani string tanımlamalısınız zaten yeni sürümde bu durumlarda sorun çıkartıyor... yani string-string tanımlamalarını sorunsuz kullanabilirsiniz...
Re: D2010 string ansistring
Ansistring ve string çevrimleri sırasında başınız agrımasın istiyorsanız, code page i tanımlı ansistring kullanın.
Aksi halde unicode ile ugraşırken ilgisiz karakterlerle karşılaşırsınız.
Aksi halde unicode ile ugraşırken ilgisiz karakterlerle karşılaşırsınız.
Kod: Tümünü seç
type
turkce = type ansistring(1254); // win 1254 nolu code page
procedure ...
var
s1: turkce;
s2: string;
begin
s1:='ğĞüÜşŞiİ';
s2:=s1; // s2 unicode dur ve dogru codepage bilindiği için çevrim dogru şekilde olacaktır.
end;