String kopyalama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
sailor
Üye
Mesajlar: 25
Kayıt: 08 Nis 2005 04:49
Konum: İzmir

String kopyalama

Mesaj gönderen sailor »

Merhaba arkadaşlar,
Delphi'de string kopyalama hakkında bir sorunum var.Araştırıyorum fakat yeterli bilgiye ulaşamadım,aşağıdaki kod da edit1'e girilen stringin edit2'de
ASCII karakter olrak göstermek istiyorum.Fakat s2:=s2+ord(s1); satırında incompatible type hatası veriyor.Stringi char'a çevirmem gerekiyor sanırım.Çözüm ne olabilir?Yardımlarınız için şimdiden teşekkürler.

procedure TForm1.Button1Click(Sender: TObject);
var
a,s2:integer;
s:string;
s1:string;
begin
s:=edit1.Text;
s2:=0;
for a:=1 to 8 do
begin
s1:=copy(s,a,1);
s2:=s2+ord(s1);
end;
edit2.Text:=inttostr(s2);
end;
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

s2:=s2+Char(ord(s1))
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

ord() integer bir sayı döner. Integer sayıyı stringe çevirmen gerekiyor.

Kod: Tümünü seç

s2:=s2+inttostr(ord(s1));
Kolay gelsin.
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Off haklısın. Benim kafam nerde böyle?
satırında incompatible type hatası veriyor.Stringi char'a çevirmem gerekiyor sanırım.
Satırına takılmışım ama acaip yanlış birşey yapmışım. :D
Kullanıcı avatarı
sailor
Üye
Mesajlar: 25
Kayıt: 08 Nis 2005 04:49
Konum: İzmir

Mesaj gönderen sailor »

Verdiğiniz bilgiler için sağolun kardeşim.Fakat hata veren satırı hem

Kod: Tümünü seç

s2:=s2+inttostr(ord(s1));
hemde

Kod: Tümünü seç

s2:=s2+ord(s1);
olarak değiştirdiğimde yine incompatible type hatasını alıyorum.Çünkü aynı satırda hem int hemde string var. s2'yi yukarıda integer olarak ayarladım.s2'nin string olmasını istemiyorum çünkü yanına değil üstüne eklemesini istiyorum.Yani toplama sonucu hep 1 byte olacak.Aslında sonucu hep hex olarak ve 1 byte olarak hesaplamak istiyorum.Yardım ederseniz çok sevineceğim arkadaşlar.Kolay gelsin.
Kullanıcı avatarı
sailor
Üye
Mesajlar: 25
Kayıt: 08 Nis 2005 04:49
Konum: İzmir

Mesaj gönderen sailor »

Özür dilerim arkadaşlar demin gönderdiğim mesajdaki s2:=s2+ord(s1); satırı s2:=s2+Char(ord(s1)) olacak.Bu şekilde yazdığımdada incompatible type hatası alıyorum.Lütfen yardımcı olun.Kolaygelsin.
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
    Sayi, i: Integer;
begin
    Sayi := 0;
    for i := 0 to Length(Edit1.Text)-1 do
        Sayi:=Sayi+ord(Edit1.Text[i]);
    Edit2.Text:=IntToStr(Sayi);

end;
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
sailor
Üye
Mesajlar: 25
Kayıt: 08 Nis 2005 04:49
Konum: İzmir

Mesaj gönderen sailor »

Çok sağol kardeşim herşey için.İnşallah işime yarar.Kolay gelsin.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
sanırım s1 değişkeninin tipi ile alakalı bir durum.

Kod: Tümünü seç

s1[1]
şeklinde kullanırsanız sanırım sorun olmazz
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
sailor
Üye
Mesajlar: 25
Kayıt: 08 Nis 2005 04:49
Konum: İzmir

Mesaj gönderen sailor »

Çok teşekkürler Aslangeri kardeşim.Kolay gelsin.
Kullanıcı avatarı
sailor
Üye
Mesajlar: 25
Kayıt: 08 Nis 2005 04:49
Konum: İzmir

Mesaj gönderen sailor »

Son verdiğin kodu şimdi deneyebildim hdayi kardeşim.Allah razı olsun senden ve tüm kardeşlerimizden,sorunumu verdiğin kod ile hallettim.
Cevapla