DElphi unsafe type 'PChar' Hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
X_ALPEREN_X
Üye
Mesajlar: 26
Kayıt: 20 Nis 2006 02:04

DElphi unsafe type 'PChar' Hatası

Mesaj gönderen X_ALPEREN_X »

merhaba arkadaslar CopyFile da sorun oluyorum Pchar hatası nasıl Giderebilirim yardımcı olursanız sevinirm

Kod: Tümünü seç

var
a:string;
begin
a:=edit1.text;
copyfile('data.dat','yedek\'+pchar(a)+,false);
sonuc olumsuz ya type hatası veriyor yada güvenli değildiyor ?
Application.Exename ' de denedim olmuyor !!
Acil yardım Please ;
memiky
Üye
Mesajlar: 116
Kayıt: 17 Kas 2004 01:52
İletişim:

Mesaj gönderen memiky »

Kendim bu fonksiyonu daha önce aşağıdaki gibi kullanmıştım. Sanırım hatanın kaynağı string bilgiyi Pchar bilgi ile birleştirmek istemenden kaynaklanıyor.

var
Kaynak:string;
Hedef:string;
begin
Kaynak:= Edit1.text;
Hedef := Edit2.Text;
copyfile(PChar(Kaynak), PChar(Hedef), false);
end;
Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Re: DElphi unsafe type 'PChar' Hatası

Mesaj gönderen Murat DİCLE »

X_ALPEREN_X yazdı:merhaba arkadaslar CopyFile da sorun oluyorum Pchar hatası nasıl Giderebilirim yardımcı olursanız sevinirm

Kod: Tümünü seç

var
a:string;
begin
a:=edit1.text;
copyfile('data.dat','yedek\'+pchar(a)+,false);
sonuc olumsuz ya type hatası veriyor yada güvenli değildiyor ?
Application.Exename ' de denedim olmuyor !!
Acil yardım Please ;
Birde şunu dene

Kod: Tümünü seç

begin
   .
   .
   CopyFile('data.dat', PChar('yedek\' + Edit1.text), False);
   .
   .
end;
'data.dat' olarak belirtildiği için parametre doğruca PCHAR olarak algılanması kolay oluyor. Ancak 'yedek\' + Edit1.Text olarak kullanıldığında parametre değeri iki farklı tipi barındırıyor. Bunun önüne geçmek için PCHAR('yedek\' + Edit1.Text) ifadesini kullanmak gerekiyor.

Çok gerekmedikçe yeni bir değişken tanıplayıp atama işlemi yapmayınız. Sizin verdiğiniz örneği benim verdiğim şekilde düzenlerseniz, daha stabil olacaktır.

Saygılar.
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Mesaj gönderen undefined »

Hocam delphi win32 de programı yazıyorsun değilmi?
X_ALPEREN_X
Üye
Mesajlar: 26
Kayıt: 20 Nis 2006 02:04

Mesaj gönderen X_ALPEREN_X »

undefined yazdı:Hocam delphi win32 de programı yazıyorsun değilmi?
evet
X_ALPEREN_X
Üye
Mesajlar: 26
Kayıt: 20 Nis 2006 02:04

Re: DElphi unsafe type 'PChar' Hatası

Mesaj gönderen X_ALPEREN_X »

Birde şunu dene

Kod: Tümünü seç

begin
   .
   .
   CopyFile('data.dat', PChar('yedek\' + Edit1.text), False);
   .
   .
end;
'data.dat' olarak belirtildiği için parametre doğruca PCHAR olarak algılanması kolay oluyor. Ancak 'yedek\' + Edit1.Text olarak kullanıldığında parametre değeri iki farklı tipi barındırıyor. Bunun önüne geçmek için PCHAR('yedek\' + Edit1.Text) ifadesini kullanmak gerekiyor.

Çok gerekmedikçe yeni bir değişken tanıplayıp atama işlemi yapmayınız. Sizin verdiğiniz örneği benim verdiğim şekilde düzenlerseniz, daha stabil olacaktır.

Saygılar.[/quote]

saolasın dostum işe yaradı ;)
memiky
Üye
Mesajlar: 116
Kayıt: 17 Kas 2004 01:52
İletişim:

Mesaj gönderen memiky »

Memleketimizde ve bu sitede bir çok kişinin ortak fikri "memik yanık çok basit yazıyor, uzatıyor" şeklinde. Gelgelim X_ALPEREN_X'in sorusuna "hatanın kaynağı string bilgiyi Pchar bilgi ile birleştirmek istemenden kaynaklanıyor" dedim ama bu tespit çözüm olamadı. Neyseki Murat Dicle hocam açık açık yazdı da sorun X_ALPEREN_X arkadaş tarafından anlaşıldı.
X_ALPEREN_X
Üye
Mesajlar: 26
Kayıt: 20 Nis 2006 02:04

Mesaj gönderen X_ALPEREN_X »

memiky yazdı:Memleketimizde ve bu sitede bir çok kişinin ortak fikri "memik yanık çok basit yazıyor, uzatıyor" şeklinde. Gelgelim X_ALPEREN_X'in sorusuna "hatanın kaynağı string bilgiyi Pchar bilgi ile birleştirmek istemenden kaynaklanıyor" dedim ama bu tespit çözüm olamadı. Neyseki Murat Dicle hocam açık açık yazdı da sorun X_ALPEREN_X arkadaş tarafından anlaşıldı.
Sizin de açıklama yaptıgınız gözümden kaçmış kusura bakmayın
Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Mesaj gönderen Murat DİCLE »

memiky yazdı:Memleketimizde ve bu sitede bir çok kişinin ortak fikri "memik yanık çok basit yazıyor, uzatıyor" şeklinde. Gelgelim X_ALPEREN_X'in sorusuna "hatanın kaynağı string bilgiyi Pchar bilgi ile birleştirmek istemenden kaynaklanıyor" dedim ama bu tespit çözüm olamadı. Neyseki Murat Dicle hocam açık açık yazdı da sorun X_ALPEREN_X arkadaş tarafından anlaşıldı.
Zaten ben Memik Yanık arkadaşın çözümünün doğru olduğunu biliyordum, alternatif olarak ve birazda detaya inmeye çalışarak izah etmek istedim. Yani optimizasyon konusunda da bir bilgi geçmek istedim.

Konular kişiler tarafından ilk defalarda zor ve anlaşılmaz olduğunda, uzun uzun anlatmak ve basite inmek doğru bir yaklaşımdır. Ancak bunların yanısıra, ileri seviyeye ulaşan kişiler içinde ek bilgilerinde verilmesi ayrıca tatmin edici olacaktır.

Saygılar.
Cevapla