35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
|
|
1 | |
Учимся читать из файла то что нужно24.12.2011, 17:25. Показов 7139. Ответов 12
Метки нет (Все метки)
В прикрепленной картинке есть скрин файлика истории который делает сервер.
у меня работает скрипт которые обрабатывает файлы в определенной директории и ему для работы необходима информация как раз таки из этого файла 1. Найти данное имя в любой строке 2. И напротив данного имени файла считать циферку в переменную После чего я уже смогу дальше доработать скрипт обработки.
0
|
24.12.2011, 17:25 | |
Ответы с готовыми решениями:
12
учимся читать тех. литературу на английском языке Что нужно читать и что нужно изучать? Как нужно читать книги по программированию? Какую литературу нужно читать начинающему электронщику? |
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
|
|
24.12.2011, 18:22 | 2 |
Не знаю, что за .REC, покажи как это выглядит в Блокноте в .TXT
0
|
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
|
|
24.12.2011, 18:25 [ТС] | 3 |
Вот так выглядит в блокноте
1
|
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
|
||||||
24.12.2011, 19:57 | 4 | |||||
Именно "60_352VR.004" искать во всех строках? и если встретится, то считывать циферки(адрес откуда) в переменную, но если окажется разные циферки, которые брать? или записывать все циферки?
Добавлено через 2 минуты Если такие циферки, встретятся только 1 раз, то:
1
|
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
|
|
24.12.2011, 21:43 [ТС] | 5 |
получается мы ищем значение имени файла которое будет помещено в переменную данную маску я ввел для примера
Добавлено через 9 минут Все супер, находит то, что нужно. Все в этой строке понял кроме как работает эта строка "tokens=3,5 skip=5 delims=і" смотрел справку чето не пойму Добавлено через 11 минут Хм вот только не работает если длину файла меняю. Мне нужно что б независимо какая длина он считывал то что нужно.
0
|
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
|
||||||
24.12.2011, 21:56 | 6 | |||||
Не понял вас.
Если меняется длина файла в каком смысле? Если увеличивается или уменьшается число строк, то уберите из кода skip=5, типо так:
0
|
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
|
||||||
24.12.2011, 22:57 [ТС] | 7 | |||||
Сначало задали вот такой файл "60_352VR.004" что если необходимо задать вот такой файл "60_353.OCH" по длине маски
Добавлено через 2 минуты аа все разобрался нужно просто пробелы ставить Добавлено через 1 минуту Вот не могу понять как работает вот эта строка "tokens=3,5 skip=5 delims=і" что означает каждый параметр читал справку по команде for так и не понял И откуда взяли "J" set x=%%j Добавлено через 56 минут Откуда взяли J
0
|
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
|
|
24.12.2011, 23:11 | 8 |
Ну если не понял, я скорее всего не помогу вам. Там все понятно написано.
skip - число пропускаемых строк в начале файла. delims - разделители (для замены заданных по умолчанию пробела и знака табуляции.), то есть чем делятся строки на подстроки. tokens - номера подстрок, которые берем. %%i - переменная куда записываются данные с выбранной подстроки, если выбрано * - значит записываются все подстроки, то есть всю строку. Если 1 - то первая подстрока, если 1,2 - то %%i - это первая подстрока, а 2 - это следующая по англ. алфавиту переменная, то есть %%j. Если назначаем переменную %%i мы можешь использовать меньше переменных, чем если укажем %%a,%%b,%%c,%%d, и т.д.. Добавлено через 2 минуты
0
|
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
|
|
24.12.2011, 23:12 [ТС] | 9 |
" 60_353.OCH"
0
|
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
|
|
25.12.2011, 00:31 | 10 |
Не знаю зачем вам проблем, у меня все норм без пробела работает, а с пробелом не работает
0
|
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
|
|
25.12.2011, 11:38 [ТС] | 11 |
Вот еще столкнулся с такой проблемой Ваша строка работает отлично, но вот необходима доработка.
Как работает алгоритм: 1) на сервер поступил файл допустим вот такого числа 19_12_11 2) Сервер зарегистрировал файл в протоколе обработки 19_12_11.REC (он формируется каждый день) 3) сервер выкладывает файл в директорию XXX 4) после того как сервер выложил файл в директорию XXX данный файл начинает обрабатывать батник (производит определенные действия) 5) батнику необходима информация о этом файле. Он по умолчанию начинает считывать из файла 19_12_11.REC тобишь за сегодняшнее число. 6) ну и после этого решается учесть файла. Проблема: 1) допустим сегодня 19_12_11 и сегодня запустился батник 2) сервер принял файлы 15_11_11 и соответственно записал протокол обработки 15_11_11.REC 3) батник ничего не найдет в протоколе за сегодняшнее число ему нужно перебрать все протоколы и найти информацию когда был обработан файл сервером. 2 пути решения 1й путь решения: Как это сделать ? что б батник считывал файлы путем перебора назад файлов протокола приема???? + еще менял месяцы + еще в зависимости от года (високосный или не високосный) 2й путь решения: Или может просто считывать дату из файла ??? когда создан файл ? и в зависимости от этого производить обработку ? Но почему то я попробовал скопировать файл из одного места в другое дата создания не поменялась не сегодняшнюю. Как решить данную задачу ?
0
|
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
|
|
25.12.2011, 12:43 | 12 |
Надо брать последний файл? (.REC). Или в папке всегда один файл .REC? Если второе - то делается как дважды два. Если первое посложнее.
0
|
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
|
|
25.12.2011, 12:46 [ТС] | 13 |
нужно брать последний файл если в этом файле не оказывается того чего нужно искать за предыдущее число
Добавлено через 21 секунду в папке много протоколов приема за каждый день
0
|
25.12.2011, 12:46 | |
25.12.2011, 12:46 | |
Помогаю со студенческими работами здесь
13
Нужно читать по байтам и писать в другой файл. нужно что б программа читала не с клавиатуры а из файла Кодировка после сохранения файла не та что нужно Что читать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |