 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
удаление строки из файла
| |
| SanSay | Дата: Среда, 22.04.2009, 22:00 | Сообщение # 16 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1662
Награды: 25
Город: Наб.Челны
Репутация: 280
Замечания: 0%
Статус: 
| Quote (CNG) в итоге, в конце файла добавится вот такая запись: Name5= ни че у тебя не появится смотри: тебе нужно чтобы файл был типа - Name1=Vasya Name2=Fedya Name3=Vova Name4=Ivan Name5=Oleg если тебе нужно удалить Ивана ты пишишь dini_Set("Name.txt","Name4","open"); и у тебя получается Name1=Vasya Name2=Fedya Name3=Vova Name4=open Name5=Oleg когда будешь добавлять новое имя, там уже можно замутить цикл чтобы переберал значения всех строк пока не найдет совпадение с open чет типо for (new Name = 0;Name < MAX_NAME;Name++) { format(string1, sizeof(string1),"Name%d", Name); { if (strcmp("empty",dini_Get(Name.txt,string1),true)==0) где найдет совпадение туда и добавить новое имя но можно это и в ручную делать, еси автоматом не сможешь типо команду для просмотра файла и сам уже добавляешь имя в конкретную строку.
simhost.org:8888 Mode:PEN1(LS)+GTO(банды+кач) v4.23_SAMP_0.3с PEN1(LS)+GTO(банды+кач)v3.92_SAMP_0.3с(ifolder)*** AntiBot*** [FS] Car Export vs SanSay*** [FS] anti_s0beit_FakeKill_Ver2
|
| |
|
|
| [RD]Chez | Дата: Среда, 22.04.2009, 22:39 | Сообщение # 17 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| SanSay, зачем так сложно, если можно допустим new Variable[ЧИСЛО НИКОВ В ФАЙЛЕ МАКСИМУМ][24]; stock ReadString(file[],tostring[]) { if(!fexist(file)) return -1; new File:opnfile; opnfile=fopen(file,io_read); { if(opnfile) new idx=0; while(idx<sizeof(Variable)) { fread(opnfile,Variable[idx]); if(!strlen(Variable[idx])) break; } fclose(opnfile); } return 1; // возвращаем 1 давая знать что всё прошло успешно } создаем команду, которая при for(new i=0; i<sizeof(Variable); i++){if(!strcmp(tmp, Variable[i]) return strdel(params... счас не помню))} затем выполняется обращение к паблику сохранения stock WriteString(tofile[],string[]) { new File:opnfile; opnfile=fopen(tofile,io_write); if(opnfile) { new idx=0; while(idx<sizeof(Variable)) { if(strlen(Variable[idx])>0) fwrite(opnfile,Variable[idx]); } fclose(opnfile); } return 1; } Добавлено (22.04.2009, 22:39) --------------------------------------------- За правильность не ручаюсь =) Отдыхаю наконец - то =)
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
| |
|
|
| CNG | Дата: Четверг, 23.04.2009, 00:20 | Сообщение # 18 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 213
Награды: 1
Город: Minsk City
Репутация: 13
Замечания: 0%
Статус: 
| что ж такое та! дан чёткий вопрос - нужна функция удаления ника из файла (1 строка - 1 ник, никаких равно) я пишу команду DelLineFromFile("nicks.ini","Вася") и если в этом файле есть строчка "Вася", то она должна удалиться! больше ничего не надо. ни сохранение в файл, ни загрузки из него!
|
| |
|
|
| [RD]Chez | Дата: Четверг, 23.04.2009, 00:24 | Сообщение # 19 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| епте -_- яж написал, а хотя завтра набросаю. я тя в аське так и не смог авторизовать Количество строк в файле больше 20?
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
| |
|
|
| CNG | Дата: Четверг, 23.04.2009, 01:39 | Сообщение # 20 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 213
Награды: 1
Город: Minsk City
Репутация: 13
Замечания: 0%
Статус: 
| <20
|
| |
|
|
| XAOC | Дата: Четверг, 23.04.2009, 07:29 | Сообщение # 21 |
|
Советчик
Группа:
Разработчики
Сообщений: 1190
Награды: 11
Город: Гдета там>>
Репутация: 311
Замечания: 0%
Статус: 
| вообще то это делается так: Code stock DelLineFromFile(fname[],linename[]) { new File:harr[2]; new xbuff[512][256]; new linnum=0; harr[0] = fopen(fname,io_read); while(fread(harr[0],xbuff[linnum])!=0){ linnum++; } fclose(harr[0]);
harr[1] = fopen(fname,io_write); for(new i=0;i<linnum;i++){ if(strcmp(linename,xbuff[i],true,strlen(xbuff[i])-2)==0) i++; else fwrite(harr[1],xbuff[i]); } fclose(harr[1]); } но так как павно всё из себя нежное, оно не может создать 512*256=131072 ячеек памяти, тем самым тут 1 вариант решения: использовать временные файлы(так как сделано в дини) есть правда ещё 1 вариант решения, но он настолько геморный что даже расписывать не буду
|
| |
|
|
| stepmex | Дата: Четверг, 23.04.2009, 09:46 | Сообщение # 22 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус: 
| Если в файле только имена, на каждой новой строчке одно имя, могу скинуть решение для любого количества строк. Добавлено (23.04.2009, 09:46) --------------------------------------------- XAOC, new xbuff[512][256]; а зачем так много, массив в 512 ячеек павно потянет, и даже больше, а второе значение достаточно MAX_PLAYER_NAME, именна длиннее все равно не могут быть?
И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
|
| |
|
|
| [RD]Chez | Дата: Четверг, 23.04.2009, 09:53 | Сообщение # 23 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| xbuff[20][24] вполне хватит для текущих условий
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
| |
|
|
| XAOC | Дата: Четверг, 23.04.2009, 10:47 | Сообщение # 24 |
|
Советчик
Группа:
Разработчики
Сообщений: 1190
Награды: 11
Город: Гдета там>>
Репутация: 311
Замечания: 0%
Статус: 
| 512 = максимальное кол-во строк(аля имён) 256 = максимальная длинна строки(да, можно использовать 20 ТК это максимальная длинна имени) но даже при 20 ограничение составит "new xbuff[192][20];"
|
| |
|
|
| stepmex | Дата: Четверг, 23.04.2009, 10:56 | Сообщение # 25 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус: 
| Quote (XAOC) да, можно использовать 20 ТК это максимальная длинна имени мксимум которое обрабатывает клиент и сервер 24, но максимум при котором тебя клиент инициализирует в игру 16, при большем выдаст ошибку про слишком длинный ник, косяк разрабов PS сегодня ночью создал массив на [10000][64] что я не так делаю
И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
|
| |
|
|
| XAOC | Дата: Четверг, 23.04.2009, 11:05 | Сообщение # 26 |
|
Советчик
Группа:
Разработчики
Сообщений: 1190
Награды: 11
Город: Гдета там>>
Репутация: 311
Замечания: 0%
Статус: 
| stepmex, ну ты попробуй его инициализировать и посмотрим как оно у тебя выйдет, пример: Code stock InitMassive() { new imassive[100500][64]; printf("massive sucess created",imassive); } просто засунь InitMassive() в OnGameModeInit()
Сообщение отредактировал XAOC - Четверг, 23.04.2009, 11:05 |
| |
|
|
| stepmex | Дата: Четверг, 23.04.2009, 11:22 | Сообщение # 27 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус: 
| XAOC, забавно, надеюсь в 0.3 разрабы сделают ограничение только по объему памяти сервера. Зато мне в голову пришла идея псевдомассивов
И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
|
| |
|
|
| [RD]Chez | Дата: Четверг, 23.04.2009, 14:59 | Сообщение # 28 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| XAOC, хзхз, но у меня с SQLite плагином удавалось создать строку 1400 символов и запрос прекрасно выполнялся Сейчас тестирую возможность выполнения строки в 4096 и более символовДобавлено (23.04.2009, 14:59) --------------------------------------------- а ступил, этож относительно массива 
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
| |
|
|
| CNG | Дата: Четверг, 23.04.2009, 14:59 | Сообщение # 29 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 213
Награды: 1
Город: Minsk City
Репутация: 13
Замечания: 0%
Статус: 
| Quote (stepmex) Если в файле только имена, на каждой новой строчке одно имя, могу скинуть решение для любого количества строк. буду благодарен
|
| |
|
|
| stepmex | Дата: Четверг, 23.04.2009, 16:48 | Сообщение # 30 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус: 
| Держи, накидал в блокноте но вроде без ошибок:[pwn]Code #define MEX_NAMES 500 //сколько максимум имен надо столько и ставь
forward AddName(string[]) forward DeleteName(string[]); forward UpdateNames(); forward LoadNames();
new Names[MAX_NAMES][MAX_PLAYER_NAME]; new AllNames = 0;
public LoadNames() { new File: file = fopen("Names.cfg", io_read); if (file) { new idx = 0; while (idx < MaxNames) { new valtmp[MAX_PLAYER_NAME]; fread(passfile, valtmp);strmid(Names[idx], valtmp, 0, strlen(valtmp)-1, 255); idx++; AllNames = idx; if(!strlen(valtmp))break; } fclose(file); } else { new File: File = fopen("Names.cfg", io_append); new var[1]; format(var, 0, "");fwrite(File, var); fclose(File); } return 1; }
public UpdateNames() { new idx = 0,string[256]; new File: file; while (idx < AllNames) { if(idx == 0) { file = fopen("Names.cfg", io_write); } else { file = fopen("Names.cfg", io_append); } format(string, sizeof(string), "%s\n", Names[idx]); fwrite(file, string); fclose(file); idx++; } return 1; }
public DeleteName(string[]) { for(new id; id < AllNames; id++) { if(strcmp(Names[id], string, false) == 0) { for(new n = id; n < AllAccounts; n++) { strmid(Names[n],Names[n+1],0,strlen(Names[n+1]),MAX_PLAYER_NAME); } break; } } AllNames-=1; UpdateNames() }
public AddName(string[]) { strmid(Names[AllNames],string,0,strlen(string),MAX_PLAYER_NAME); AllNames+=1; UpdateNames() } [/pwn]как все это работает помести в OnGameModeInit() строку LoadNames(). Имена храняться в файле Names.cfg чтобы удалить имя из фала DeleteName(имя) добавить имя в фаил AddName(имя) Для работ с никами используй массив Name[MAX_NAMES] в котором храняться имена. Ручками фаил можно редактировать только при отключенном сервере! Это кстати пример динамического массивы 
И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
|
| |
|
|
|
 |
|
 | |
| |
|