Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Dosya Konumunu Bulmak

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler

Kullanıcı avatarı

Konu Sahibi
Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

Dosya Konumunu Bulmak

Mesaj gönderen Colditz »

Merhaba yazar arkadaşlarım,
Dosyaya satır ekleme komutu yapmaya çalışıyorum fakat dosyanın konumunu algılamada sorun yaşıyorum.

Aşağıdaki koda bakalım. Öncelikle filename olan yere dosyamızın konumunu yazıyoruz. Örnek olarak;
"addons/amxmodx/configs/deneme.ini" ve text olan yere ekleyeceğimiz yazıyı yazıyoruz.
Sonradan belirttiğimiz yerde yani "addons/amxmodx/configs/" da geçici bir ini dosyası oluşturuyoruz.
Amacımızın gerçekleşmesi için .ini dosyasının konumunu bulmam gerekiyor.
Filename yerine "addons/amxmodx/deneme.ini" yazdıklarında dosya konumu olarak "addons/amxmodx/" olduğunu bulabilmem gerekiyor.

Kod: Tümünü seç

stock csd_write_file(const filename[], const text[])
{
	new const gecicidosyaismi[] = "gecicidosya.ini";

	// ...
}
Yardımlarınızı bekliyorum.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

amad
Mesajlar: 1809
Kayıt: Cmt Nis 30, 2016 2:46 pm
Konum: Batman
Clan İsmi: Ke$`h | Gaming
İletişim:

Dosya Konumunu Bulmak

Mesaj gönderen amad »

Kod: Tümünü seç

new yol[81]
get_configsdir(yol, charsmax( yol ))
%s/deneme.ini",yol = addons/amxmodx/configs/deneme.ini

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

Dosya Konumunu Bulmak

Mesaj gönderen Colditz »

Configs dosyasında olmayanlar için ?

Filename i "addons/amxmodx/logs/logver.ini" yaptığımızı düşünelim. Geçici dosyayı configs içine oluşturacak. Maalesef çalışmaz.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Taha Demirbaş
Mesajlar: 10427
Kayıt: Cum Tem 08, 2016 10:05 pm
Konum: Türkiye
İletişim:

Dosya Konumunu Bulmak

Mesaj gönderen Taha Demirbaş »

Colditz yazdı: Pzt Ağu 20, 2018 12:13 am Configs dosyasında olmayanlar için ?

Filename i "addons/amxmodx/logs/logver.ini" yaptığımızı düşünelim. Geçici dosyayı configs içine oluşturacak. Maalesef çalışmaz.
Biraz baktım kütüphaneye felan da pek bir şey bulamadım.
Bulamazsan ve çok gerekiyor ise dosya yollarını tek tek tanımlaman lazım oda çok zor iş.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

Dosya Konumunu Bulmak

Mesaj gönderen Colditz »

Aslında şu durumda yaptım. Fakat oyuncuların uğraşmasını istemediğim için bu şekilde yapmayı düşündüm.
deneme.ini yi gördüğü gibi kesmesi gerekiyor.

Kod: Tümünü seç

stock csd_write_file(const dosyakonumu[], const dosyaismi[], const text[])

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

amad
Mesajlar: 1809
Kayıt: Cmt Nis 30, 2016 2:46 pm
Konum: Batman
Clan İsmi: Ke$`h | Gaming
İletişim:

Dosya Konumunu Bulmak

Mesaj gönderen amad »

get_customdir komutunu bir dene

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

Dosya Konumunu Bulmak

Mesaj gönderen Colditz »

By.Dehset yazdı: Pzt Ağu 20, 2018 12:35 am get_customdir komutunu bir dene
get_customdir komutu uzun zamandır kullanılmayan bir komut ve get_configsdir komutu ile aynı.
Bu komutlar direk addons/amxmodx/configs yerini algılıyor. Benim istediğim şey bu değil.
'filename' e göre dosya konumu kendisi ayarlanacak. Eklentide addons/amxmodx/logs/logs.ini yazdığım zaman otomatik logs klasörüne kadar bulacak yani.

Link:
Linklerini gizle
Linki Kopyala

PaZee
Mesajlar: 1761
Kayıt: Çrş Şub 22, 2017 11:28 pm
Konum: Istanbul
Server Ip/DNS: Cs.teknoklan.com
Clan İsmi: TeknoKlan
İletişim:

Dosya Konumunu Bulmak

Mesaj gönderen PaZee »

containi ile çektir isminde varsa oraya yazdir gibi gibi

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

Dosya Konumunu Bulmak

Mesaj gönderen Colditz »

@PaZee
Mecbur böyle yapacağız artık. Başka bir yöntem yok gibi.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

Dosya Konumunu Bulmak

Mesaj gönderen Colditz »

Bu kod güzel bir şekilde dosyaya yazı yazabiliyor fakat bir kere değilde 3-4 kere yazıyor bazen 5-6 kere yazıyor.
10 kere komutu ardarda denediğimde 79023 tane adminlik yazdığını gördüm. Hatayı bulabilir misiniz :D

Kod: Tümünü seç

stock csd_write_file(const filepath[], const filename[], const text[])
{
	new const tempfilename[] = "write_tempfile.ini";

	new fullpath[256];
	formatex(fullpath, charsmax(fullpath), "%s%s", filepath, filename);

	new filepointer = fopen(fullpath, "rt");

	if(filepointer)
	{
		new tempfilepath[256];
		formatex(tempfilepath, charsmax(tempfilepath), "%s%s", filepath, tempfilename);

		new inputfilepointer = fopen(tempfilepath, "wt");

		if(inputfilepointer)
		{
			new filedata[128];

			while(!feof(filepointer))
			{
				fgets(filepointer, filedata, charsmax(filedata));
				trim(filedata);

				fprintf(inputfilepointer, "%s^n%s^n", filedata, text);
			}

			fclose(inputfilepointer);
			fclose(filepointer);

			delete_file(fullpath);
			rename_file(tempfilepath, fullpath, 1);

			return 1;
		}
	}
	else
	{
		set_fail_state("[EasyInclude] %s adli dosya bulunamadi.", fullpath);
	}

	return 0;
}

Link:
Linklerini gizle
Linki Kopyala
Cevapla