kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
farkmt2official 1
farkmt2official
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle

Hızlı Source Temizleme (Otomatik Define Silme)

  • Konuyu başlatan Konuyu başlatan Mehmetcan Y.k
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 43
  • Görüntüleme Görüntüleme 13K
3.00 yıldız(lar) 1 Değerlendirme Değerlendirenler
Kodumuzu biraz daha eğittim mesela

##ifdeftest1
##ifdeftest2
##endif
##endifşeklindeyse yani silinmesini istediğimiz ifdefin içinde eğer başka bir endif varsa onda durmuyor devam ediyor ve bir sonraki endifde siliyor

[CODE lang="python" title="kodumuz"]import os

def ara_ve_sil(klasor_yolu, aranan_define):
for klasor, alt_klasorler, dosyalar in os.walk(klasor_yolu):
for dosya in dosyalar:
dosya_yolu = os.path.join(klasor, dosya)
try:
with open(dosya_yolu, 'r') as f:
satirlar = f.readlines()

yeni_icerik = []
silme_modu = False # İç içe geçmiş ifdef bloklarını takip etmek için
ifdef_sayaci = 0 # İç içe geçmiş ifdef bloklarını saymak için

for satir in satirlar:
if aranan_define in satir: # Aranan define'i bulduk
silme_modu = True

if silme_modu and satir.strip().startswith("#ifdef"): # İç içe geçmiş ifdef bloklarını kontrol et
ifdef_sayaci += 1

if silme_modu and ifdef_sayaci > 0: # İç içe geçmiş ifdef bloğunun içindeyiz
if satir.strip().startswith("#endif"): # İç içe geçmiş ifdef'in son endif'ine ulaştık
ifdef_sayaci -= 1
if ifdef_sayaci == 0: # İç içe geçmiş ifdef'in son endif'ini bulduk
silme_modu = False
continue

if not silme_modu or aranan_define in satir: # Silme modunda değilken veya aranan define'i içeren bir satırsa
yeni_icerik.append(satir)

with open(dosya_yolu, 'w') as f:
f.writelines(yeni_icerik)

except Exception as e:
print(f"Hata: {dosya_yolu} dosyası işlenirken bir hata oluştu: {e}")

klasor_yolu = input("Lütfen klasör yolunu girin: ")
aranan_define = input("Lütfen silinecek defineyi girin: ")

ara_ve_sil(klasor_yolu, aranan_define)
[/CODE]
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst