selam hepinize kolay gelsin arkadaşlar
autoitle bir klasörün içinde txt dosyalarının ismini topluca nasıl değiştirebilirim?
1.txt
2.txt
3.txt
bunun gibi mesela
Autoit klasör içinde txt isimlerini değiştirme?
- BlueLife
- Kilobyte1
- Mesajlar: 270
- Kayıt: 29 Ağu 2014, 20:42
- Teşekkür etti: 14 kez
- Teşekkür edildi: 25 kez
Re: Autoit klasör içinde txt isimlerini değiştirme?
Basit bir örnek verelim. Sen mantığını anlayıp kendi istediğin şekilde düzenlersin...
Kod: Tümünü seç
;~ #include <Array.au3>
Local $Folder = "C:\Test\" ;Klasörümüz
Local $FileList, $File ;Değişkenler
Local $Search = FileFindFirstFile($Folder & "*.txt") ;Klasörümüzde txt dosyalarını arayalım
If $Search <> -1 Then
While 1
$File = FileFindNextFile($Search)
If @error Then ExitLoop
;Klaösr değilse listemize alalım
If @extended = 0 Then $FileList &= $File & "|"
WEnd
FileClose($Search)
EndIf
If StringRight($FileList, 1) = "|" Then $FileList = StringTrimRight($FileList, 1)
;Arama sonucunda dosya bulunmuşsa
If StringLen($FileList) > 0 Then
;Bulunan dosyaları parçalayarak sıralayalım
$FileList = StringSplit($FileList, "|")
Local $NewFileName = 1
For $I = 1 To $FileList[0]
;Aynı isimde dosya klasör varmı kontrol edip olmayan isim bulalım
While FileExists($Folder & $NewFileName & ".txt") = 1
$NewFileName += 1
WEnd
FileMove($Folder & $FileList[$I], $Folder & $NewFileName & ".txt")
Next
EndIf
;~ _ArrayDisplay($FileList)
- velociraptor
- Yottabyte4
- Mesajlar: 46727
- Kayıt: 14 Mar 2006, 02:33
- cinsiyet: Erkek
- Teşekkür etti: 4945 kez
- Teşekkür edildi: 4129 kez
Re: Autoit klasör içinde txt isimlerini değiştirme?
ben pek giremedim nete siz çoktan cevap yazmışsınız bile :) Teşekkürler başka bir sorum daha var txt dosyalarını tek bir txt içinde birleştirmek vede 1 txt dosyasının içeriğini 2ye bölme tabi veri kaybı olmmayacak satır harf karakter hepsi aynı olacak şekilde istiyorum bunun içinde yardımcı olmanız mümkünmüdür.
- BlueLife
- Kilobyte1
- Mesajlar: 270
- Kayıt: 29 Ağu 2014, 20:42
- Teşekkür etti: 14 kez
- Teşekkür edildi: 25 kez
Re: Autoit klasör içinde txt isimlerini değiştirme?
@anxious
Bir konumdaki txt dosyasının içeriğini bir dosyada toplamak çok zor değil. Lakin bölme işlemi nasıl neye göre olacak?
Ayrıca txt dosyalarının içeriğindeki kodlama ansi mi? Unicode olma ihtimali varmı? Tabi yeni dosyayı unicode olarak ayarlayabiliriz lakin haliyle dosya boyutu büyüyor.
Biraz daha detay verirsen, basit bir örnek vermeye çalışırım...
Bir konumdaki txt dosyasının içeriğini bir dosyada toplamak çok zor değil. Lakin bölme işlemi nasıl neye göre olacak?
Ayrıca txt dosyalarının içeriğindeki kodlama ansi mi? Unicode olma ihtimali varmı? Tabi yeni dosyayı unicode olarak ayarlayabiliriz lakin haliyle dosya boyutu büyüyor.
Biraz daha detay verirsen, basit bir örnek vermeye çalışırım...
Re: Autoit klasör içinde txt isimlerini değiştirme?
öncelikle cevabınız için teşekkürler bölme işlemi veriler yarı yarıya olacak txt dosyalarım bazen çok uzun bir liste olabiliyor alt alta isim ve telefon numaraları var
txt ansi veya unicode dediğinizden pek anlamıyorum ama telefon kişilerinin isim ve soyisimlerinde türkçe karakterler var.Demek istediğim şudur txt dosyam nasılsa öyle birleştirsin.
txt ansi veya unicode dediğinizden pek anlamıyorum ama telefon kişilerinin isim ve soyisimlerinde türkçe karakterler var.Demek istediğim şudur txt dosyam nasılsa öyle birleştirsin.
- BlueLife
- Kilobyte1
- Mesajlar: 270
- Kayıt: 29 Ağu 2014, 20:42
- Teşekkür etti: 14 kez
- Teşekkür edildi: 25 kez
Re: Autoit klasör içinde txt isimlerini değiştirme?
Txt dosyalarını listeleyip, birinci dosya hariç diğer txt dosyalarının içeriklerini okutup, birinci dosya üzerine yazdıktan sonra, okuttuğunuz dosyayı silerek, birleştirme yapabilirsiniz.
Aşağıda bir örnek verdim. Kendinize göre ayarlarsınız.
Yeterli vaktim ayıramayacağım için, şimdilik bölme ile alakalı bir örnek vermeyeceğim. Siz bu konuda biraz uğraşırsınız. Kısaca, dosyaları boyut değilde satır sayısına göre bölebilirsiniz. Misal önce txt dosyasını okutup, okuttuğunuz bilgiyi satır sayısına göre parçalayıp ayrı dosyalara yazabilirsiniz.
Okuttuğunuz veriyi parçalamak için autoit kütüphanelerinde bulunan _FileReadToArray fonksiyonu da kullaılabilir.
Kolay gelsin....
Aşağıda bir örnek verdim. Kendinize göre ayarlarsınız.
Kod: Tümünü seç
Global $Folder = "C:\Test\" ;Klasörümüz
Global $FileList
; ------------------------------
;~ $FileList = _TXT_FILE_LIST($Folder) ;txt dosyalarımızı listeleyelim
;~ _TXT_FILE_RENAME($Folder,$FileList) ;txt dosyalarımızı yeniden adlandıralım
; ------------------------------
$FileList = _TXT_FILE_LIST($Folder) ;txt dosyalarımızı listeleyelim
_TXT_FILE_MERGE($Folder, $FileList) ;txt dosyalarımızı yeniden adlandıralım
; ------------------------------
Func _TXT_FILE_MERGE($TargetPath, $FileList)
If IsArray($FileList) = 0 Or $FileList[0] = 0 Then Return
Local $TxtOpenFile = FileOpen($TargetPath & $FileList[1], 1)
If $TxtOpenFile = -1 Then Return
Local $TxtRead
For $I = 2 To $FileList[0]
$TxtRead = FileRead($TargetPath & $FileList[$I])
If @error = 0 Then
If FileWrite($TxtOpenFile, @CRLF & StringStripWS($TxtRead, 3)) = 1 Then
FileDelete($TargetPath & $FileList[$I])
EndIf
EndIf
Next
FileClose($TxtOpenFile)
EndFunc ;==>_TXT_FILE_MERGE
Func _TXT_FILE_RENAME($TargetPath, $FileList)
If IsArray($FileList) = 0 Or $FileList[0] = 0 Then Return
Local $NewFileName = 1
For $I = 1 To $FileList[0]
;Aynı isimde dosya klasör varmı kontrol edip olmayan isim bulalım
While FileExists($TargetPath & $NewFileName & ".txt") = 1
$NewFileName += 1
WEnd
FileMove($TargetPath & $FileList[$I], $TargetPath & $NewFileName & ".txt")
Next
EndFunc ;==>_TXT_FILE_RENAME
Func _TXT_FILE_LIST($TargetPath)
Local $FileList, $File ;Değişkenler
Local $Search = FileFindFirstFile($TargetPath & "*.txt") ;Klasörümüzde txt dosyalarını arayalım
If $Search <> -1 Then
While 1
$File = FileFindNextFile($Search)
If @error Then ExitLoop
;Klaösr değilse listemize alalım
If @extended = 0 Then $FileList &= $File & "|"
WEnd
FileClose($Search)
EndIf
If StringRight($FileList, 1) = "|" Then $FileList = StringTrimRight($FileList, 1)
;Arama sonucunda dosya bulunmuşsa
If StringLen($FileList) > 0 Then
;Bulunan dosyaları parçalayarak sıralayalım
Return StringSplit($FileList, "|")
EndIf
Local $ReturnErr[1] = [0]
Return SetError(1, 0, $ReturnErr)
EndFunc ;==>_TXT_FILE_LIST
Okuttuğunuz veriyi parçalamak için autoit kütüphanelerinde bulunan _FileReadToArray fonksiyonu da kullaılabilir.
Kolay gelsin....