Konu: TEXT DOSYADAN VERİ AKTARMA
TEXT DOSYADAN VERİ AKTARMA SIRASINDA
APPEND FROM &YI4 TYPE SDF
OLUŞAN TÜRKÇE HARF HATALARI İÇİN
BİR KODUNUZ VARMI ?
Giriş yapmadınız. Lütfen giriş yapın yada kayıt olun.
TEXT DOSYADAN VERİ AKTARMA SIRASINDA
APPEND FROM &YI4 TYPE SDF
OLUŞAN TÜRKÇE HARF HATALARI İÇİN
BİR KODUNUZ VARMI ?
CREATE CURSOR test (ad c(30))
INSERT INTO test (ad) values('üüğğiişşççöö')
INSERT INTO test (ad) values('ÜÜĞĞİİŞŞÇÇÖÖ')
COPY TO 'test1.sdf' TYPE SDF
APPEND FROM 'test1.sdf' TYPE SDF
ben bir hata göremedim.
file_handle = FOPEN(M_txt_FILE,12)
STORE FSEEK(file_handle, 2) TO ifp_size
=FSEEK(file_handle, 0)
DO WHILE .NOT. FEOF(file_handle)
DEGER = FGETS(file_handle,M_UZNLUK) &&
{ İSTEDİĞİN YERE GÖNDER}
ENDDO
= FCLOSE(file_handle)
ben bu sekilde alıyorum türkçe karekter bozulması olmuyor
ben şuana kadar hiç text dosyalarında türkçe karakter sıkıntısı yaşamadım problemin nedir yada kullandığın makine ingilizce ve foxpronun kullandığı fontta türkçe karakter desteğimi yok? doğru append eder fakat görünümde düzgün görünmeyebilir
bir metod daha, array içinden debug ile türkçe karakterleri kontrol edebilirsin.
arraya da iyi gelmiyorsa windows ile ilgili galiba
=alines(arraytxt,FILETOSTR("C:\geçici\xxx.txt"))
FOR m.xi= 1 TO ALEN(arraytxt,1)
?arraytxt[m.xi] && istediğin yere gönder
ENDF
not: SET memowidth önemli !
.XML UZANTILI BİR DOSYADAN OKUTMA YAPIYORUM.
APPEND FROM XX.XML TYPE SDF
KOMUTU İLE
FIELDS I
ACIKLAMA CHARACTER 200
OLAN BİR DOSYAYA AKTARIYORUM.
"Ş" YERİNE "Å"
İ = Ä°
Ö = Ã-
Ğ = Ä
Ç = Ã_
şeklinde AKTARMALAR YAPIYOR
xmltocursor fonksiyonunu kullan. hiçbir sorun yaşamazsın o zaman.
Local lcXMLFile,LcCursor
LcCursor = Sys(2015) && myXML
lcXMLFile = Getfile("xml","XML File Dosyası Adı..","Seç")
If ! Empty(m.lcxmlFile)
Xmltocursor(m.lcXMLFile,m.LcCursor,512)
Select (m.LcCursor)
Browse Normal
Endif
ya çıldıracam bu enddo hatası nedir. neden geliyor burada baktım kullanılmış hata vermiyormu. bana Nesting Error diye hata veriyor. altta cancel ignore ignoreall diye buton koymuş bekliyor çıldırcam kod aşağıda
buay=alltrim(thisform.container1.combo1.value)
if buay#""
bugun="g"+buay
buucret="uc"+buay
buikramiye="ikr"+buay
set default to d:\
Dosyaadi=getfile('*','Dosya Adi:','Dosya Al',0,"Dosya Seçimi")
*sonra bu dosyayı geçici bir table atacam
set default to d:\_uygulama\datalar
GECTAB=sys(2015)
create table &GECTAB. free(txtsskno N(13,0),txtyil N(4,0),txtgun N(2,0),txtucmat N(12,2),txtikrmat N(12,2))
use in &GECTAB.
use &GECTAB. in 0 alias ssggkk
***arasıra burda hata veriyor sanırım aşağıdaki dele file &GETABADI. ifadesinde silemediği için
appe from alltrim(Dosyaadi) sdf
select Cnt(*) from sigorta where sskno=txtsskno into array kayitvarmi
if kayitvarmi>0
do while .NOT. EOF(ssggkk)
arasskno=ssggkk.txtsskno
******bu şekildemi arasskno=txtsskno
arayil=ssggkk.txtyil
aragun=ssggkk.txtgun
araucret=ssggkk.txtucmat
araikrmat=ssggkk.txtikrmat
sele sigorta
set order to sskno
seek arasskno
if arasskno=sigorta.sskno and arayil=sigorta.yil
********buradada yardımınızı istiyorum beceremedim aşşağıdaki gibi yada ugur beyin dediği gibi kaydetmedi
******ben böyle yazdım ama
repl sigorta.&bugun. with sigorta.&bugun.+aragun,;
sigorta.&buucret. with sigorta.&buucret.+araucret,;
sigorta.&buikramiye. with sigorta.&buikramiye.+araikramiye in sigorta;
endif
enndo
else
****burda personel tablosunu seçip gelen sigorta numarasının olup olmadığının kontrolü
select Cnt(*) from personel where sskno=txtsskno into array perkaydi
if perkaydi=0
messagebox(txtsskno+" "+"SSK nolu personel kayıtlı değil")
****tüm işlemi iptal edip personelin personel tablosuna kaydedilmesini sağlamalı
else
***demekki personel dosyasında var ancak sigorta tablosuna hiç kaydı yapılmamış yeni eklenecek
*****sizlerin yardımına ihtiyaç duyuyorum yukarıdaki şekilde geçici dosyadan gelen
***** ucret ikramiye ve gun seçilen aya ait alanlara gidecek
endif
endif
****işimiz bitti
GTABADI=&GECTAB.+".DBF"
DELE FILE GTABADI ******burada hata verdi
else
messagebox("Ay Seçmediniz",64,"Ay Seçim Hatası")
endif
enddo yerine enndo yazmışsın.
enddo yazssamda aynı oluyor.
35.satiri duzelttigine emin misin.
eminim düzelttim