Autoit klasör içinde txt isimlerini değiştirme?

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Autoit klasör içinde txt isimlerini değiştirme?

Mesaj gönderen anxious »

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
Kullanıcı avatarı
BlueLife
Kilobyte1
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?

Mesaj gönderen BlueLife »

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)
Kullanıcı avatarı
velociraptor
Yottabyte4
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?

Mesaj gönderen velociraptor »

teşekkürler BlueLife
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Re: Autoit klasör içinde txt isimlerini değiştirme?

Mesaj gönderen anxious »

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.
Kullanıcı avatarı
BlueLife
Kilobyte1
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?

Mesaj gönderen BlueLife »

@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...
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Re: Autoit klasör içinde txt isimlerini değiştirme?

Mesaj gönderen anxious »

ö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.
Kullanıcı avatarı
BlueLife
Kilobyte1
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?

Mesaj gönderen BlueLife »

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.

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