Konu: Txt Dosyayı Bölmek
Mevcut bir txt dosyasını binary veya satır olarak nasıl 2 ayrı dosya haline getirebilirim?
Giriş yapmadınız. Lütfen giriş yapın yada kayıt olun.
fox4um » Kodlama ve Komutlar » Txt Dosyayı Bölmek
Mevcut bir txt dosyasını binary veya satır olarak nasıl 2 ayrı dosya haline getirebilirim?
soruyu yanlış anlamadı isem:
m.bölünecekdosya=FILETOSTR(GETFILE())
m.bölen=INT(LEN(m.bölünecekdosya)/2)
? STRTOFILE(LEFT(m.bölünecekdosya, m.bölen), 'yarimdosya1.txt')
? STRTOFILE(RIGHT(m.bölünecekdosya, LEN(m.bölünecekdosya)-m.bölen), 'yarimdosya2.txt')
satırdan bölmek için
=ALINES(arSatirlar,FILETOSTR(GETFILE('txt')))
m.bölensatir= INT(ALEN(arSatirlar,1)/2)
SET SAFETY OFF
? STRTOFILE('','yarimdosya1.txt')
? STRTOFILE('','yarimdosya2.txt')
FOR m.xi=1 TO ALEN(arSatirlar,1)
IF m.xi>m.bölensatir
= STRTOFILE(arSatirlar[m.xi]+CHR(13),'yarimdosya2.txt',.t.)
ELSE
= STRTOFILE(arSatirlar[m.xi]+CHR(13),'yarimdosya1.txt',.t.)
ENDIF
ENDF
SET SAFETY ON
Sayın Konuka
Dosya bölme işlemini
append from xxx.txt type sdf komutunda line is too long hatası alıyordum.
ancak hatanın dosya büyüklüğünden değil, satır uzunluğundan olduğunu sonradan farkettim.
append from komutunu kullanırken dönüştürülecek txt dosyanın satır uzunluğunu belirtebilir miyiz?
Yani her satırın ilk 50 karakterini al gibi.
Teşekkürler.
Sevgili Smentes,
Böyle bir programı çok öncelerde yazmıştım. O zamanlar bir dummy text dosyası ile işi çözmüştüm. Kontrol ettim hala çalışıyor. Yanlız benim ipe sapa gelmez program yazılış tarzımı af etmen gerekir.
Bu programda satırları 50 şer karaktere bölmek yerine 50 karaktere en yakın boşluktan bölerek her satırın anlamlı olmasını sağlamıştım. Aslında program 250 karakter üzerine yazılmıştı ama ben örnekte 50 yaptım.
Umarım işine yarar.
dizin = filetostr("dosya.txt")
kal = ""
DO WHILE LEN(kal)+LEN(dizin)>50
mx = kal+SUBSTR(dizin,1,50)
z = RAT(" ",mx)
bas = SUBSTR(mx,1,z)+ CHR(13)
STRTOFILE(bas,"sil.txt",1)
kal = SUBSTR(mx,z+1)
dizin = SUBSTR(dizin,51)
ENDDO
dizin = kal+dizin
STRTOFILE(dizin,"sil.txt",1)
append from sil.txt sdf
erase sil.txt
Sevgilerimle.
Erdal.
soruyu tam analayamdığımı düşünmeye başladım
APPEND FROM dosyası bir .dbf ye kayıt ekler diye biliyorum.
satır genişliğini düzenlemek için: SET MEMOWIDTH komutunu deneyebilisin.
ilk 50 karakter için de önceden verdiğim örnekğe ek denenbilinir ...:
= STRTOFILE(LEFT(arSatirlar[m.xi],50)+CHR(13),'yarimdosya2.txt',.t.)
Local Array Satirlarx(1)
=ALines(Satirlarx,FileToStr(FullPath("Bilgiler.Txt")))
For ax= 1 To Alen(satirlarx,1)
Insert into Bilgiler (tum__bilgi) values(Alltrim(Left(satirlarx[ax],254)))
EndFor
şeklinde problemimi hallettim. Teşekkür ederim.
fox4um » Kodlama ve Komutlar » Txt Dosyayı Bölmek