Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 12
  1. #1
    Аватар для Иван Бубнов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±

    Как прочитать все файлы в одной директории

    Всем привет. Недавно возник такой вопрос, как открыть все файлы находящиеся в одной папке и записать данные в переменную. Использую mxINI, файлов не так уж и много. Название файлов таковы: 500, 1000, 1500, 2000 и так продолжается до 10.000

    Думал открыть все файлы как-то так:
    if(!(string % 500)))//string - format(string,sizeof(string), "users/%s.ini");
    {
    ini_getInteger(....);
    // и т.д
    }

    Заранее благодарен, надеюсь суть проблемы понятен, сформулировал сложно)

  2. #2
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    PHP код:
    new
        
    str[32],
        
    file,
        
    value;

    for(new 
    500<= 10000+= 500)
    {
        
    format(strsizeof(str), "users/%i.ini"i);
        
    file ini_openFile(str);
        
    ini_getInteger(file"ключ"value);
        
    // при первой итерации:
        // открываем файл "users/500.ini и берём данные из строки: "ключ = число"
        // теперь в переменной value будет храниться число после символа '='
        
    ini_closeFile(file);


  3. #3
    Аватар для Иван Бубнов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±
    Без цикла не обойтись?

  4. #4
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Иван Бубнов Посмотреть сообщение
    Без цикла не обойтись?
    Легко:
    PHP код:
    new
        
    file,
        
    value;

    file ini_openFile("users/500.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/1000.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/1500.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/2000.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/2500.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/3000.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/3500.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/4000.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/4500.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/5000.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/5500.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/6000.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/6500.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/7000.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/7500.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/8000.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/8500.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/9000.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/9500.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file);

    file ini_openFile("users/10000.ini");
    ini_getInteger(file"ключ"value);
    ini_closeFile(file); 
    Последний раз редактировалось ziggi; 31.01.2016 в 17:49.

  5. 3 пользователя(ей) сказали cпасибо:
    DeimoS (01.02.2016) L0ndl3m (31.01.2016) Outsider (05.10.2017)
  6. #5
    Аватар для Иван Бубнов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±
    Лучше уж циклом тогда.

  7. #6
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    377
    Репутация:
    146 ±
    Чем лучше? По сути одно и то же. Просто в цикле компилятор сам за тебя определит название файла и загрузит его. А без цикла код такой же просто места больше занимает ))

  8. #7
    Аватар для Profyan
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.12.2013
    Адрес
    Омск
    Сообщений
    196
    Репутация:
    22 ±
    Цитата Сообщение от wAx Посмотреть сообщение
    Чем лучше? По сути одно и то же. Просто в цикле компилятор сам за тебя определит название файла и загрузит его. А без цикла код такой же просто места больше занимает ))
    ну ведь задача программиста - это максимально облегчить свой труд и перекинуть всю работу на машину?!)



    Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку
    Мартин Фаулер


    Skype
    profan99
    VK
    click




  9. #8
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Profyan Посмотреть сообщение
    ну ведь задача программиста - это максимально облегчить свой труд и перекинуть всю работу на машину?!)
    Да, но кому-то важнее скорость, а мой вариант значительно быстрее.

  10. #9
    Аватар для Иван Бубнов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±
    А цикл не может только проверять 500сотые файлы? пропустив 1..499 и тд. А кстати я использую foreach, может с ним это получится сделать нет?

  11. #10
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Иван Бубнов Посмотреть сообщение
    А цикл не может только проверять 500сотые файлы? пропустив 1..499 и тд. А кстати я использую foreach, может с ним это получится сделать нет?
    Эм?
      Открыть/закрыть



    В Pawn аналогично работает цикл.
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •