Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вставка строк в конкретные строки (txt)

Ответить
Настройки темы
CMD/BAT - [решено] Вставка строк в конкретные строки (txt)

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Возможно кто-то сталивался, как оперативно добавлять строки в текстовый файл без полного перебора (парсинга) текстового файла.

Есть вот такой файл:
со строками: год месяц день час мин сек (пример: 11 5 19 10 58 44.0000000) и куча другой информации в файле (неважной для задачи данной).

читать дальше »

11 5 19 10 58 43.0000000 0 14G 3G 5G 7G 8G10G13G26G28R 2R 3R12R13
R21R22
23937611.227 128228888.227
21649722.758 116205952.527
20534695.633 110346446.625
20521656.344 110277934.398
21527845.234 115565479.777
23666730.875 126645453.188
23339340.133 124586989.199
11 5 19 10 58 44.0000000 0 14G 3G 5G 7G 8G10G13G26G28R 2R 3R12R13
R21R22
23937660.945 128229149.523
21649544.078 116205013.566
23323712.570 125002844.848
23666859.422 126646141.047
23338919.938 124584746.086
11 5 19 10 58 45.0000000 0 14G 3G 5G 7G 8G10G13G26G28R 2R 3R12R13
R21R22


Каким образом можно вставить 3-4 строки перед каждой строкой с датой-временем, чтобы результат выглядел к примеру так:

читать дальше »

2 MARKER NAME
MARKER NUMBER
-Unknown- -Unknown- ANT # / TYPE
0.0000 0.0000 0.0000 APPROX POSITION XYZ
2.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
SE TPS 00000000 COMMENT
*** THIS IS THE START OF A NEW SITE *** COMMENT
11 5 19 10 58 43.0000000 0 14G 3G 5G 7G 8G10G13G26G28R 2R 3R12R13
R21R22
23937611.227 128228888.227
21649722.758 116205952.527
23339340.133 124586989.199
2 MARKER NAME
MARKER NUMBER
-Unknown- -Unknown- ANT # / TYPE
0.0000 0.0000 0.0000 APPROX POSITION XYZ
2.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
SE TPS 00000000 COMMENT
*** THIS IS THE START OF A NEW SITE *** COMMENT
11 5 19 10 58 44.0000000 0 14G 3G 5G 7G 8G10G13G26G28R 2R 3R12R13
R21R22
23937660.945 128229149.523
23666859.422 126646141.047
23338919.938 124584746.086
3 MARKER NAME
MARKER NUMBER
-Unknown- -Unknown- ANT # / TYPE
0.0000 0.0000 0.0000 APPROX POSITION XYZ
2.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
SE TPS 00000000 COMMENT
*** THIS IS THE START OF A NEW SITE *** COMMENT
11 5 19 10 58 45.0000000 0 14G 3G 5G 7G 8G10G13G26G28R 2R 3R12R13
R21R22


Источник данных (ручные GPS-маркеры) для вставки выглядит так, проблем для его разбора нет (формат csv):

читать дальше »
INDEX,TAG,DATE,TIME,LATITUDE N/S,LONGITUDE E/W,HEIGHT,SPEED,HEADING,FIX MODE,VALID,PDOP,HDOP,VDOP,VOX
1,T,110519,095141,46.418703N,030.459649E,70,20,0,3D,SPS ,1.1,0.8,0.7,
2,T,110519,095142,46.418629N,030.459584E,74,12,0,3D,SPS ,1.4,1.2,0.8,

Для поиска нужен второй и третий столбик (токен). 2-й столбик: ГГММДД, 3-й стобик: ЧЧММСС.
ГГ -год, ММ-месяц, ДД-дата, ЧЧ - час (0-24), ММ-мин, СС -сек.

Интересно решение с помощью cmd(bat) или SED или SFK которое бы легко модифицировалось.

Заранее большое спасибо за подсказку.

Отправлено: 23:27, 05-06-2011

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата alexey_vf:
Интересно решение с помощью cmd(bat) »
без перебора строк в любом случае не выйдет:
Код: Выделить весь код
@echo off
set FILE=file.txt

setlocal EnableDelayedExpansion
(for /f "usebackq delims=" %%a in ("%FILE%") do (set "$a=%%a"
  for /f "Tokens=6" %%b in ("!$a!") do (set "$b=%%b"
    if "!$b:~-8!"==".0000000" (
      echo:2 MARKER NAME
      echo:MARKER NUMBER
      echo:-Unknown- -Unknown- ANT # / TYPE
      echo:0.0000 0.0000 0.0000 APPROX POSITION XYZ
      echo:2.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
      echo:SE TPS 00000000 COMMENT
      echo:*** THIS IS THE START OF A NEW SITE *** COMMENT
    ))
  echo:!$a!
))>"%~n0.tmp"
copy "%~n0.tmp" "%FILE%">nul&& del "%~n0.tmp"
P.S. в исходном тексте не должно быть символов "!"
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:30, 06-06-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Все проверил. Идея отличная, работает на ура.
Огромное спасибо!
С остальными переменными и подстановками разберусь сам.

Но к сожалению результат оказался проблемным поскольку конечный файл содержит не разделители а какие-то
фиксированные позиции (60,80) для вывода значений. А отвлекать народ сильно сложной задачей не хочется.

Возможно кто-то подскажет как понимать расшифровку формата (Описание формата )
Раздел: 11. RINEX VERSION 2.10 FORMAT DEFINITIONS AND EXAMPLES
Третий столбик: Format: F9.2,11X, A1,19X, - Что это означает, позиции табуляций (пробелов)? Это нужно чтобы распарсить (там не обыные token-ы) данный файл в примере.
читать дальше »
11 5 19 10 58 43.0000000 0 14G 3G 5G 7G 8G10G13G26G28R 2R 3R12R13
R21R22
23937611.227 128228888.227
21649722.758 116205952.527
20534695.633 110346446.625
20521656.344 110277934.398
21527845.234 115565479.777
23666730.875 126645453.188
23339340.133 124586989.199
11 5 19 10 58 44.0000000 0 14G 3G 5G 7G 8G10G13G26G28R 2R 3R12R13
R21R22
23937660.945 128229149.523
21649544.078 116205013.566
23323712.570 125002844.848
23666859.422 126646141.047
23338919.938 124584746.086
11 5 19 10 58 45.0000000 0 14G 3G 5G 7G 8G10G13G26G28R 2R 3R12R13
R21R22

Последний раз редактировалось alexey_vf, 08-06-2011 в 20:37.


Отправлено: 14:58, 06-06-2011 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вставка строк в конкретные строки (txt)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Удаление/вставка строк в Word AlexVong Скриптовые языки администрирования Windows 3 03-05-2011 17:20
C/C++ - Строки, массивы строк... ManHack Программирование и базы данных 6 29-04-2011 06:31
VBA - [решено] Поиск строки с № и вставка последующего номера в конце документа (Word) sergey-pskov Программирование и базы данных 4 11-03-2011 17:35
CMD/BAT - [решено] Разработать программу которая будет считать кол-во символов,строк,слов в .txt klenb Скриптовые языки администрирования Windows 10 18-05-2010 15:19
.NET - Долгая вставка строк в таблицу базы SDF Delirium Программирование и базы данных 1 16-09-2009 06:33




 
Переход