1

Konu: Txt Dosyayı Bölmek

Mevcut bir txt dosyasını binary veya satır olarak nasıl 2 ayrı dosya haline getirebilirim?

2 Son düzenleyen, konuka (17.11.2011 15:33:00)

Re: Txt Dosyayı Bölmek

soruyu yanlış anlamadı isem:

Visual Fox Pro
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

Visual Fox Pro
=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
VFP9 SP2

3

Re: Txt Dosyayı Bölmek

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.

4

Re: Txt Dosyayı Bölmek

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.

Visual Fox Pro
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.

5

Re: Txt Dosyayı Bölmek

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.)

VFP9 SP2

6

Re: Txt Dosyayı Bölmek

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.