 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Чтение из файла
| |
| SanSay | Дата: Четверг, 09.12.2010, 21:25 | Сообщение # 1 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1662
Награды: 25
Город: Наб.Челны
Репутация: 280
Замечания: 0%
Статус: 
| нужно прочитать из файла инфу, реалезовано так: Code public LoadGTOLevels() { new arrCoords[2][128]; new strFromFile2[256]; new File: file = fopen("GTO/Levels.cfg", io_read); if (file) { new idx; while (idx < sizeof(GTOLevelsInfo)) { fread(file, strFromFile2); split(strFromFile2, arrCoords, ','); strmid(GTOLevelsInfo[idx][GTOLName], arrCoords[0], 0, strlen(arrCoords[0]), 255); GTOLevelsInfo[idx][GTOLExperience] = strval(arrCoords[1]); idx++; } } fclose(file); return 1; } файл вида: Премьер-министр Уругвая,2083000 Владелец фабрик домов и пароходов,2293000 Атташе,2513000 эта система работает, реализована в десяти других подобных случаях. в принципе считывает, но прабла в том, что текст как то криво считывает (strmid(GTOLevelsInfo[idx][GTOLName], arrCoords[0], 0, strlen(arrCoords[0]), 255);), а именно почемуто считывает только 24-25 символов, а потом считывает следующую строку файла...если в строке текст до запятой менее 24 символов, то нормально, если больше, то считывает криво. пример после правильного считывания этого файла должно быть: GTOLevelsInfo[0][GTOLName] = Премьер-министр Уругвая GTOLevelsInfo[0][GTOLExperience] = 2083000 GTOLevelsInfo[1][GTOLName] = Владелец фабрик домов и пароходов GTOLevelsInfo[1][GTOLExperience] = 2293000 GTOLevelsInfo[2][GTOLName] = Атташе GTOLevelsInfo[2][GTOLExperience] = 2513000 а на деле имеем: GTOLevelsInfo[0][GTOLName] = Премьер-министр Уругвая GTOLevelsInfo[0][GTOLExperience] = 2083000 GTOLevelsInfo[1][GTOLName] = Владелец фабрик домов и Атташе GTOLevelsInfo[1][GTOLExperience] = 2293000 GTOLevelsInfo[2][GTOLName] = Атташе GTOLevelsInfo[2][GTOLExperience] = 2513000 т.е. на второй строке файла в значении GTOLName длина более 24/25 символов и вместо всех символов 2-ой строки почему то после 25-го символа добавляется значение 3-ей строки, причем длина второй строки остается правильной!!!
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 | Дата: Четверг, 09.12.2010, 22:33 | Сообщение # 2 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| попробуй занулять переменную, в которой хранится строка после использования... с таким не сталкивался увы как вариант читается символ \n неведомым образом О_о
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
Сообщение отредактировал [RD]Chez - Четверг, 09.12.2010, 22:35 |
| |
|
|
| SanSay | Дата: Четверг, 09.12.2010, 23:00 | Сообщение # 3 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1662
Награды: 25
Город: Наб.Челны
Репутация: 280
Замечания: 0%
Статус: 
| Quote (|RD|Chez) как вариант читается символ \n неведомым образом О_о /n - тут я думаю не причем, т.к. во второй строке, где происходит косяк никаким /n (перенос строки) и не пахнет слух [RD]Chez, а не может быть в функции strmid какого нить ограничения? по идее длина строки там указывается 255 символов... но может есть какое-нить другое ограничение в 25 символов?
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
|
| |
|
|
| Dima-kun | Дата: Четверг, 09.12.2010, 23:34 | Сообщение # 4 |
|
Группа:
Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус: 
| Quote (SanSay) strmid какого нить ограничения? по идее длина строки там указывается 255 символов... но может есть какое-нить другое ограничение в 25 символов? в описании функции такого нет, но я с этим сталкивался когда чтение изфайла также делал мне строчку не полносьтью читало как раз ~25 символов
Мои работы: [INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники, [FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos, [GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
|
| |
|
|
| SanSay | Дата: Четверг, 09.12.2010, 23:55 | Сообщение # 5 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1662
Награды: 25
Город: Наб.Челны
Репутация: 280
Замечания: 0%
Статус: 
| Quote (Morino_Reigan) в описании функции такого нет, но я с этим сталкивался когда чтение изфайла также делал мне строчку не полносьтью читало как раз ~25 символов ну и... как решал праблу... выход конечно есть - тупо используешь только 25 символов... но хотелось бы по нормальному... целиком, не зря же указывается размер строки!
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
|
| |
|
|
| stepmex | Дата: Пятница, 10.12.2010, 21:16 | Сообщение # 6 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус: 
| SanSay, пробывал выодить промежуточные результаты и смотреть на каком этапе происходит косяк?
И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
|
| |
|
|
| SanSay | Дата: Пятница, 10.12.2010, 22:17 | Сообщение # 7 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1662
Награды: 25
Город: Наб.Челны
Репутация: 280
Замечания: 0%
Статус: 
| stepmex, о каких промежуточных результатах идет речь? поясняю, все строки считываются, но на строках, где длина переменной GTOLName больше 25 символов происходит косяк, дальше опять нормально считывается... потом опять если больше 25 символов, то опять косяк и косяк касается только значения GTOLName, второе значение GTOLExperience считывается без сбоев, не зависимо от того, был сбой в первом значении этой строки или нет. В файле 100 строк сбои происходят на любой строке и в начале файла и в середине и в конце... везде где длина переменной более 25 символов. Так что, где происходит косяк и так понятно.
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
Сообщение отредактировал SanSay - Пятница, 10.12.2010, 22:18 |
| |
|
|
| Dima-kun | Дата: Суббота, 11.12.2010, 00:00 | Сообщение # 8 |
|
Группа:
Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус: 
| SanSay, я пока отложил эту проблему на полку...хотя странно что она не вносит больше.
Мои работы: [INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники, [FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos, [GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
|
| |
|
|
| SanSay | Дата: Вторник, 14.12.2010, 21:18 | Сообщение # 9 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1662
Награды: 25
Город: Наб.Челны
Репутация: 280
Замечания: 0%
Статус: 
| короче тоже пришлось тупо довольствоваться 24-я символами
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 | Дата: Вторник, 14.12.2010, 22:39 | Сообщение # 10 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| можно попробовать strdel(string, 0, strlen(string)); str = strtok(source, idx, ',');//при старом strtok strcat(destination, str);
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
| |
|
|
| SanSay | Дата: Вторник, 14.12.2010, 23:19 | Сообщение # 11 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1662
Награды: 25
Город: Наб.Челны
Репутация: 280
Замечания: 0%
Статус: 
| [RD]Chez, чет моих мозгов не хватает, чтобы логически понять смысл написанного тобою кода... можешь расшифровать... как я понял: strdel(string, 0, strlen(string)); - это вроде как очищает строку strcat(destination, str); - объединяет 2-е строки а это: str = strtok(source, idx, ',');//при старом strtok я вообще не понял к чему.
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 | Дата: Среда, 15.12.2010, 01:31 | Сообщение # 12 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| SanSay, strtok возвращает содержимое строки до char delimeter то бишь в случае с гф delimeter = ' ', но в гф переменную delimeter убрали, заменив на прямое сравнение в циклах с ' ' в инклуде utils вроде должен быть старый strtok, в который передать нужно ','
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
| |
|
|
|
 |
|
 | |
| |
|