D2010 string ansistring

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

D2010 string ansistring

Mesaj gönderen comfort »

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.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: D2010 string ansistring

Mesaj gönderen SimaWB »

Yazma işlemi yaparken Length kullanıyorsan string için Length(S)*2 yapmalısın. yada daha genel olarak :

Kod: Tümünü seç

Length(S) * SizeOf(S[1])
Aşağıdaki makale çok işine yaracaktır:
http://edn.embarcadero.com/article/38693
.
There's no place like 127.0.0.1
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: D2010 string ansistring

Mesaj gönderen Lost Soul »

makaleyi okudum örneğe göre şöyle bir kod yazdım

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)]));
sonuç şöyle

Kod: Tümünü seç

aStr:123456789
aAnsiStr:123456789
Length(aStr):9
Length(aAnsiStr):9
SizeOf(aStr):4
SizeOf(aAnsiStr):4
şu string ansistring işi baş ağrıtacağa benziyor. Delphi neden 2010 da böyle bireye ihtiyaç duydu ki:(
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Re: D2010 string ansistring

Mesaj gönderen comfort »

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:(
sanırım d2009 ile gelen unicode desteği ile alakalı. Benim anlamadığım string mi kullanıcaz ansistring mi?
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: D2010 string ansistring

Mesaj gönderen Lost Soul »

AnsiString kullanın.
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: D2010 string ansistring

Mesaj gönderen Battosai »

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...
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: D2010 string ansistring

Mesaj gönderen emin_as »

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.

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;
Cevapla