+ Yanıtla
Toplam 7 sonuçtan 1 ile 7 arası olanlar

Konu Başlığı: Liste düzenleyebilen bir script arıyorum !

  1. #1

    Liste düzenleyebilen bir script arıyorum !

    Merhaba şöyle bir PHP script veya Yazılım arıyorum.

    Diyelim benim alt alta sıralanmış hem sayı hemde harf içeren tek sütunluk bir SQL verim var. Bu veriler "tek sütunda" hem sayı hemde harflerden oluşan ortalama yüz bin satırlık bir veri dosyası. 1 milyonda olabilir.

    Ben bu verilerin istediğim rakamlarda atıyorum 5000'erli gruplar halinde txt dosyası olarak export edilmesini istiyorum.

    Yani eğer veri dosyamda toplam yüz bin satır var ise script bana bunu 5000'erli gruplar halinde düzenleyecek, farklı isimlerde 20 ayrı txt dosyasına export edecek ve dosya isimlerini kendisi ayarlayacak.

    Ayrıca ben 5000 değilde 1000'erli satırlar al ve bunları farklı isimlerde dosyalara kaydet de diyebileyim.

    Bana bu konuda yardımcı olabilir misiniz? Sanırım el ile yazılması gerekebilir. Benim için çok ama çok önemli.

    Teşekkür ederim.

  2. #2

    Re: Liste düzenleyebilen bir script arıyorum !

    SQL verisinden kastınız nedir?

    aradığınız program bir veritabanına bağlanıp verileri çekip text dosyaya/dosyalarına belirli sayıda kayıt edecek bir program mıdır?
    "oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney
    http://www.sipidik.com

  3. #3

    Re: Liste düzenleyebilen bir script arıyorum !

    Evet kesinlikle öyle. MySQL veri tabanına bağlanıp verileri alarak belirlediğim aralıklarda txt dosya yada dosyalara bölecek.

    Ben sadece tek sütunluk bir veri biçimi için arıyorum. Alt alta sıralanmış sayı ve rakamlardan oluşan veriler bunlar. Yaklaşık 17 milyon satır.

    Ben bu kadar satırı mesela binerli yada on binerli gruplarda farklı isimlerde txt dosyalarına aktarmak istiyorum.

    El ile yapmam imkansız.

  4. #4

    Re: Liste düzenleyebilen bir script arıyorum !

    veri tabanına bağlanmasa bile ben zaten bu veriyi SQL, MDB, TXT ve daha bir çok formatta export edebiliyorum. Yani dosyadan da okusa olur. Ama sanırım böyle bir şeyi yapmak için küçük bir PHP yazılım yazmak lazım.

  5. #5

    Re: Liste düzenleyebilen bir script arıyorum !

    PHP ile elbette yapılabilir, ancak PHP'ye gerek olmadan vbs ile de yapılabilir.

    test.vbs
    Kod:
    SplitNumber = 2					' satır sayısı
    SourceFile = "D:\Projects\Source.txt"	' kaynak dosya
    Path  = "D:\Projects\"			' hedef dosyaların kaydedileceği dizin
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objSourceFile = objFSO.OpenTextFile(SourceFile, 1)
    
    iLoop = 1
    FileContent = ""
    
    Do Until objSourceFile.AtEndOfStream
    	FileContent = FileContent & objSourceFile.Readline
    	If iLoop Mod SplitNumber = 0 Then
    		Set objTargetFile = objFSO.CreateTextFile(Path & GenRandomFileName(7) & ".txt")
    		objTargetFile.Write(FileContent)
    		FileContent = ""
    		Set objTargetFile = Nothing
    	Else
    		FileContent = FileContent & vbCrLf
    	End If
    	iLoop = iLoop + 1
    Loop
    
    If FileContent <> "" Then
    	Set objTargetFile = objFSO.CreateTextFile(Path & GenRandomFileName(7) & ".txt")
    	objTargetFile.Write(FileContent)
    	FileContent = ""
    	Set objTargetFile = Nothing
    End If
    
    Set objSourceFile = Nothing
    Set objFSO = Nothing
    
    Function GenRandomFileName(x)
    	return = ""
    	For I = 1 To x
    		return = return & Chr(Int((25 * Rnd) + 65))
    	Next
    	GenRandomFileName = return
    End Function
    
    SplitNumber : dosyaların kaç satırda bir bölünecek
    SourceFile : verileri export ettiğiniz kaynak dosya
    Path : oluşturulacak dosyaların kaydedileceği dizin

    yukarıdaki kodu .vbs olarak kaydedip içerisinde gerekli düzeltmeleri yapıp çalıştırırsanız sanırım istediğiniz sonucu alabilirsiniz.

    not: verileri (benim örneğim için source.txt olarak) txt dosyaya export ettiğinizi varsayıyorum.

    sonradan farkettim de (hehe, gecenin bu vaktinde ancak aklıma geldi) export etmeden de, veritabanına bağlanan, ordan veriyi çekecek şekilde hazırlanabilir.

    Kod:
    SplitNumber = 2					' satır sayısı
    Path  = "D:\Projects\"			' hedef dosyaların kaydedileceği dizin
    
    iLoop = 1
    FileContent = ""
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    Set Conn = CreateObject("ADODB.Connection")
    Conn.Open ConnStr
    
    Set Rs = Conn.Execute("Select alan From tablo")
    
    While Not Rs.EOF
    	FileContent = FileContent & Rs("alan")
    	If iLoop Mod SplitNumber = 0 Then
    		Set objTargetFile = objFSO.CreateTextFile(Path & GenRandomFileName(7) & ".txt")
    		objTargetFile.Write(FileContent)
    		FileContent = ""
    		Set objTargetFile = Nothing
    	Else
    		FileContent = FileContent & vbCrLf
    	End If
    	iLoop = iLoop + 1
    Rs.MoveNext
    Wend
    
    If FileContent <> "" Then
    	Set objTargetFile = objFSO.CreateTextFile(Path & GenRandomFileName(7) & ".txt")
    	objTargetFile.Write(FileContent)
    	FileContent = ""
    	Set objTargetFile = Nothing
    End If
    
    Set objFSO = Nothing
    
    Function GenRandomFileName(x)
    	return = ""
    	For I = 1 To x
    		return = return & Chr(Int((25 * Rnd) + 65))
    	Next
    	GenRandomFileName = return
    End Function
    
    SplitNumber : dosyaların kaç satırda bir bölünecek
    Path : oluşturulacak dosyaların kaydedileceği dizin

    ConnStr : veritabanınıza bağlantı cümlesi
    bunun yanı sıra select ifadesini de kendinize göre düzenlemeniz gerekmektedir.
    Mesaj absconder tarafından 10.10.2008 (01:04) yeniden düzenlendi.
    "oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney
    http://www.sipidik.com

  6. #6

    Re: Liste düzenleyebilen bir script arıyorum !

    WOW gerçekten çok güzel. İlk verdiğini kullanıyorum. Bir kez daha yazılım bilgimi geliştirmem gerektiğini anladım. Dosyalara bölmeye başladı ve sanırım unique dosya isimleri bunlar. Binlerce çünkü Teşekkür ederim.

  7. #7

    Re: Liste düzenleyebilen bir script arıyorum !

    işinizi görmesine sevindim.

    dosya adları unique değil ama neredeyse unique GenRandomFileName(7) ile 7 harften oluşan dosya isimleri veriliyor. buradaki numarayı değiştirip istediğiniz uzunlukta vererek çakışma olasılığını daha da düşürebilirsiniz, ancak 7 harfli dosya uzunlğunun aynı olma ihtimali 3*10^23 gibi bir şey
    "oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney
    http://www.sipidik.com

+ Yanıtla

Bu konu başlığı için etiketler

Mesaj Seçenekleri

  • Yeni başlık açamazsınız
  • Cevap yazabilirsiniz
  • Dosya ekleyemezsiniz
  • Mesajlarınızı değiştiremezsiniz