xarax Posted June 5, 2010 Share Posted June 5, 2010 yeni bir AIO sorusu bir klasörün içinde adları 1.exe.........50.exe ye kadar dosyalar var.bu klasöre ismi önemli değil bir dosya daha attık X.exe mesela elimizde bir input nesnesi var ve bu inputa [1-50] arası bir sayı giriliyor. bir butona yazdığımız kodlarla şimdi kontrol etmeye başlayacağız 1)Klasörde pro1.exe....pro50.exe dışında bir dosya var mı? X.exe gibi 2)Klasörde pro1.exe....pro50.exe adlarındaki exe dosyalarından biri veya tamamı eksik mi? şimdi bu iki şarta göre 1den 50 ye olan exe dosyalarından inputta yazan veya tamamı yoksa içine sonradan attığımız dosyanın(X.exe) adını inputta yazan sayı olarak yeniden adlandıracak.(inputta 5 yazıyorsa 5.exe olacak) eğer inputta yazan sayı değeri ile aynı dosya varsa mesela inputta 2 yazsın 2.exe de klasörde zaten bulunsun, bu durumda o 2.exe dosyasını silsin ve sonradan eklenen X.exe dosyasının adını inputtaki değer yapsın 2.exe yani. AMS 8 üzerinde çalışabilecek kodlar lazım. birkaç deneme yaptım fakat olmadı.sonradan eklediğim dosyayı nasıl algılatacağımızı bulamadım.AMS ustalarından yardım bekliyorum. Link to comment Share on other sites More sharing options...
KintaRo Posted June 6, 2010 Share Posted June 6, 2010 yeni bir AIO sorusu bir klasörün içinde adları 1.exe.........50.exe ye kadar dosyalar var.bu klasöre ismi önemli değil bir dosya daha attık X.exe mesela elimizde bir input nesnesi var ve bu inputa [1-50] arası bir sayı giriliyor. bir butona yazdığımız kodlarla şimdi kontrol etmeye başlayacağız 1)Klasörde pro1.exe....pro50.exe dışında bir dosya var mı? X.exe gibi 2)Klasörde pro1.exe....pro50.exe adlarındaki exe dosyalarından biri veya tamamı eksik mi? şimdi bu iki şarta göre 1den 50 ye olan exe dosyalarından inputta yazan veya tamamı yoksa içine sonradan attığımız dosyanın(X.exe) adını inputta yazan sayı olarak yeniden adlandıracak.(inputta 5 yazıyorsa 5.exe olacak) eğer inputta yazan sayı değeri ile aynı dosya varsa mesela inputta 2 yazsın 2.exe de klasörde zaten bulunsun, bu durumda o 2.exe dosyasını silsin ve sonradan eklenen X.exe dosyasının adını inputtaki değer yapsın 2.exe yani. AMS 8 üzerinde çalışabilecek kodlar lazım. birkaç deneme yaptım fakat olmadı.sonradan eklediğim dosyayı nasıl algılatacağımızı bulamadım.AMS ustalarından yardım bekliyorum. Kodlamayı bitirdim. Biraz karışık görünebilir ama kodlardaki açıklamaları okuyuncda anlayacaksın eminim. Kodların yaptığı işlemler; - dosya yolu ile beraber dosya isimlerini buluyor, - dosya isimlerini yolundan ayrıştırıyor, - yeni atılan dosya ismini, 1,50.exe arasındaki dosya isimlerinden ayrıştırıyor - inputa yazdigin dosya ismi ile eşleşen eski dosyayi siliyor - inputa yazdığın dosya ismini yeni attığın dosyaya veriyor ek olarak kodları AMS 7.5'de hazırladım. 8.0'da döngülere parse olayı eklendi. Henüz o konuya vakıf değilim. şimdi sen bunu 7.5'de dene. eğer işini, görürse 8.0'a uyarlarız. parse olayını çözmem fazla zamanımı almaz. Ayrıca 1'den 50'ye kadar olan dosyaların isimleri 1,2,3,4 dite değilde; 01,02,03.....10,11,12 şeklinde gitmeli. Çünkü AMS 1'den sonra 10 sayısını görüyor. yani 1,10,2,20,3... şeklinde gidiyor. ilk 9 sayının başlarına 0 eklemeyi unutma. Kodlar: TextFile.WriteFromString("Autoplay\\a.txt", "", false) -- a.txt yi boşalt TextFile.WriteFromString("Autoplay\\b.txt", "", false) -- b.txt yi boşalt File.Delete("AutoPlay\\data.ini", false, false, false) -- ini dosyasını sil strBul = File.Find(_SourceFolder .. "\\AutoPlay\\Docs", "*.*", false, false) -- docs klasorundeki dosyalari bul -- dosya yolunu ve isimlerini a.txt ye yazdir. for n in strBul do TextFile.WriteFromString("Autoplay\\a.txt", strBul[n] .. "\r\n", true) end tblOku = TextFile.ReadToTable("AutoPlay\\a.txt") -- a.txt nin içeriğini oku -- okunan veriden sadece dosya isimlerini al ve ini dosyasina yazdir for n in tblOku do strDosya = String.SplitPath(tblOku[n]) INIFile.SetValue("Autoplay\\data.ini", "pro", strDosya.Filename .. strDosya.Extension, "0") end -- ilk 9 dosya adını sil ilk = 1; son = 9; adim = 1; for count = ilk, son, adim do INIFile.DeleteValue("AutoPlay\\data.ini", "pro", "0" .. count .. ".exe") end -- geri kalan 41 dosya adını sil ilk = 1; son = 41; adim = 1; for count = ilk, son, adim do INIFile.DeleteValue("AutoPlay\\data.ini", "pro", count .. ".exe") end -- dosya isimlerini a.txt ye yazdır tblNames = INIFile.GetValueNames("AutoPlay\\data.ini", "pro") TextFile.WriteFromString("Autoplay\\a.txt", "", false) for n in tblNames do TextFile.WriteFromString("Autoplay\\a.txt", tblNames[n] .. "\r\n", true) end tblIsim = INIFile.GetValueNames("AutoPlay\\data.ini", "pro") -- ini dosyasındaki pro bolumundeki basliklari al strIname = Input.GetText("Input1") -- inputtaki metni al File.Delete("AutoPlay\\Docs\\" .. strIname .. ".exe", false, false, false) -- inputtaki yazan pro isminin eşleştiği dosyayi sil File.Rename("AutoPlay\\Docs\\" .. tblIsim[1], "AutoPlay\\Docs\\" .. strIname .. ".exe") -- yeni dosyayi inputta yazan dosya adiyla değiştir Dialog.Message("Mesaj", "işlem başarılı") Link to comment Share on other sites More sharing options...
xarax Posted June 6, 2010 Author Share Posted June 6, 2010 Teşşekkürler Kintaro deneyip cevap yazarım AMS8 e kodları uydurmaya bakacam. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.