TStringList çağırma hk.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
droxee
Üye
Mesajlar: 86
Kayıt: 15 May 2009 04:29

TStringList çağırma hk.

Mesaj gönderen droxee »

Merhabalar programcı dostlar,
programımın bulunduğu dizinde ek.pth adında bir dosyam var bunun içinde bir dosya konumu bulunmakta "C:\DATS\Dosyalar" şeklinde tırnaksız tabi ben bunu global değişkenlerle mypath :string ve list_ek:TStringList

Kod: Tümünü seç

MyPath:=Extractfilepath(Application.ExeName);
Liste_Ek:=TStringList.Create;
If FileExists(MyPath+'ek.pth') Then
Liste_Ek.LoadFromFile(MyPath+'ek.pth');
programımdan çağırıyorum buraya kadar bir sorun yok. Bir butonun click olayına;

Kod: Tümünü seç

Edt_Dosya_Yolu.Text:=OpenDialogPDF.FileName; //C:\DATS\Dosyalar\1.tif seçiliyor
Edt_OCR.Text:=Liste_Ek.Text+'\'+LeftStr(ExtractFileName(OpenDialogPDF.FileName),(length(ExtractFileName(OpenDialogPDF.FileName)))-length(rightstr(ExtractFileName(OpenDialogPDF.FileName),4)))+'.txt'; //Bu kod Edt_OCR a  C:\DATS\Dosyalar\1.txt şeklinde yazıyor
kodunu girdiğimde Edt_OCR içine sorunsuz yazdığını gösteriyor fakat bunu bir label.caption a aktardığımda Liste_Ek den gelen kısım sonrası alta sarkıyor ve dolayısıyla dosya bulunamadı hatası alıyorum design modunda text kısmına elle yazdığımda problem yok program sorunsuz çalışıyor girmem gerekli bir parametre mi vardır?
ihalilcoban
Üye
Mesajlar: 121
Kayıt: 10 Ara 2015 10:39

Re: TStringList çağırma hk.

Mesaj gönderen ihalilcoban »

Merhaba.

Label in WordWrap özelliği false mi?
Kullanıcı avatarı
droxee
Üye
Mesajlar: 86
Kayıt: 15 May 2009 04:29

Re: TStringList çağırma hk.

Mesaj gönderen droxee »

Default False geliyor. Denedim her iki seçenekte de problem devam ediyor.Resim şeklinde
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: TStringList çağırma hk.

Mesaj gönderen ertank »

droxee yazdı: 11 Eki 2018 04:19 Default False geliyor. Denedim her iki seçenekte de problem devam ediyor.Resim şeklinde
ek.pth dosyanızın içinde birden fazla satır var. Siz TStringList.Text ile bilgi aldığınız zaman satırlar arasındaki #13#10 karakterleri de string içinde geliyor. Label içinde gösterilir iken iki satır olarak gösteriliyor.

Dosya içindeki ifadeyi tek satır olarak düzenlerseniz sorun kalmayacaktır.
Kullanıcı avatarı
droxee
Üye
Mesajlar: 86
Kayıt: 15 May 2009 04:29

Re: TStringList çağırma hk.

Mesaj gönderen droxee »

.pth dosyasını elle düzenledim fakat o da tek satırdan oluşmakta
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: TStringList çağırma hk.

Mesaj gönderen ertank »

-Kullandığınız Delphi sürümü nedir?
-Aşağıdaki kod ile yapmak istediğiniz sadece dosya ekini değiştirmek mi?

Kod: Tümünü seç

Edt_OCR.Text:=Liste_Ek.Text+'\'+LeftStr(ExtractFileName(OpenDialogPDF.FileName),(length(ExtractFileName(OpenDialogPDF.FileName)))-length(rightstr(ExtractFileName(OpenDialogPDF.FileName),4)))+'.txt'; //Bu kod Edt_OCR a  C:\DATS\Dosyalar\1.txt şeklinde yazıyor
- .pth dosyasını paylaşabilir misiniz?
Kullanıcı avatarı
droxee
Üye
Mesajlar: 86
Kayıt: 15 May 2009 04:29

Re: TStringList çağırma hk.

Mesaj gönderen droxee »

1. sorunuz Delphi 7 ve Firebird kullanıyorum.
2. sorunuz kodum seçilen dosya adını dialogdan uzun dosya adresi içinden cımbızlayarak uzantısını değiştirip edite yazdırması şeklinde
ek.pth da da sadece 'C:\DATS\Dosyalar' yazıyor.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: TStringList çağırma hk.

Mesaj gönderen ertank »

ek.pth dosyasını paylaşmanız daha güzel olacaktı. İlk cevabımın doğru olduğuna inanıyorum halen. Dosyanın içinde sizin görmediğiniz ENTER karakterleri var. Çok yüksek ihtimal ile dosya 3 satır var. İlk satır sizin gördüğünüz. Ardından iki adet ekstra ENTER var ve bunları okuyan TStringList kendi içinde boş bir eleman ekliyor.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: TStringList çağırma hk.

Mesaj gönderen ertank »

İleriye dönük sorun çıkmasını engellemek için aşağıdaki gibi bir kod yazabilirsiniz.

Kod: Tümünü seç

Edt_OCR.Text := Liste_Ek[0] + ChangeFileExt(ExtractFileName(OpenDialogPDF.FileName), '.txt');
Kullanıcı avatarı
droxee
Üye
Mesajlar: 86
Kayıt: 15 May 2009 04:29

Re: TStringList çağırma hk.

Mesaj gönderen droxee »

ek.pth dosyası aşağıdaki linkte verdiğiniz kodu da hemen deneyeceğim
https://www.dosyaupload.com/qKc1
En son droxee tarafından 12 Eki 2018 03:22 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Kullanıcı avatarı
droxee
Üye
Mesajlar: 86
Kayıt: 15 May 2009 04:29

Re: TStringList çağırma hk.

Mesaj gönderen droxee »

Yazdığınız kod işimi gördü çok teşekkürler..

Kod: Tümünü seç

Edt_OCR.Text:=Liste[0]+'\'+LeftStr(ExtractFileName(OpenDialogPDF.FileName),(length(ExtractFileName(OpenDialogPDF.FileName)))-length(rightstr(ExtractFileName(OpenDialogPDF.FileName),4)))+'.txt';
Liste_Ek.text yerine Liste[0] yazınca düzeldi.
Cevapla