alexey_vf
05-06-2011, 23:27
Возможно кто-то сталивался, как оперативно добавлять строки в текстовый файл без полного перебора (парсинга) текстового файла.
Есть вот такой файл:
со строками: год месяц день час мин сек (пример: 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 которое бы легко модифицировалось.
Заранее большое спасибо за подсказку.
Есть вот такой файл:
со строками: год месяц день час мин сек (пример: 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 которое бы легко модифицировалось.
Заранее большое спасибо за подсказку.