Комрады! Выручате!
Получаемый отчет вручную не импортируется в программу, необходимо его привести к другому виду
получаю файл 7420_Fil_AngANGARSK_D2011-01-21.csv (обычный текстовой)
внутри
"branchno","store","country","period","hour","zone","customers - incoming","customers - outgoing"
"AngANGARSK","203 Ecco-geox","Russian Federation","2011-01-21","09:00","Floor 1, main1","7","3"
"AngANGARSK","203 Ecco-geox","Russian Federation","2011-01-21","11:00","Floor 1, main1","","1"
"AngANGARSK","203 Ecco-geox","Russian Federation","2011-01-21","12:00","Floor 1, main1","9","10"
"AngANGARSK","203 Ecco-geox","Russian Federation","2011-01-21","13:00","Floor 1, main1","10","7"
"AngANGARSK","203 Ecco-geox","Russian Federation","2011-01-21","14:00","Floor 1, main1","12","10"
"AngANGARSK","203 Ecco-geox","Russian Federation","2011-01-21","15:00","Floor 1, main1","9","14"
"AngANGARSK","203 Ecco-geox","Russian Federation","2011-01-21","16:00","Floor 1, main1","19","11"
"AngANGARSK","203 Ecco-geox","Russian Federation","2011-01-21","17:00","Floor 1, main1","16","16"
"AngANGARSK","203 Ecco-geox","Russian Federation","2011-01-21","18:00","Floor 1, main1","7","10"
"AngANGARSK","203 Ecco-geox","Russian Federation","2011-01-21","19:00","Floor 1, main1","15","11"
"AngANGARSK","203 Ecco-geox","Russian Federation","2011-01-21","20:00","Floor 1, main1","10","6"
нужно привести к виду
storeid, shopname, branchno, date, location, time, in-coming, out-going
7420,203 Ecco-geox,AngANGARSK,2011-01-21,Main1,09:00,7,3
7420,203 Ecco-geox,AngANGARSK,2011-01-21,Main1,11:00,0,1
7420,203 Ecco-geox,AngANGARSK,2011-01-21,Main1,12:00,9,10
7420,203 Ecco-geox,AngANGARSK,2011-01-21,Main1,13:00,10,7
7420,203 Ecco-geox,AngANGARSK,2011-01-21,Main1,14:00,12,10
7420,203 Ecco-geox,AngANGARSK,2011-01-21,Main1,15:00,9,14
7420,203 Ecco-geox,AngANGARSK,2011-01-21,Main1,16:00,19,11
7420,203 Ecco-geox,AngANGARSK,2011-01-21,Main1,17:00,16,16
7420,203 Ecco-geox,AngANGARSK,2011-01-21,Main1,18:00,7,10
7420,203 Ecco-geox,AngANGARSK,2011-01-21,Main1,19:00,15,11
7420,203 Ecco-geox,AngANGARSK,2011-01-21,Main1,20:00,10,6
То есть первую строку заменяем полностью, в остальных первый параметр берем из имени файла, удаляем все кавычки, остальное как душе угодно. Хочется универсальности, так как такого вида пять файлов.
SendMessage
10-02-2011, 10:53
Боюсь, средствами cmd универсальности добиться тяжело. По крайней мере, я не вижу приемлимого пути. Но конкретную задачу решить просто:
@echo off
setlocal enabledelayedexpansion
set "FileName=7420_Fil_AngANGARSK_D2011-01-21.csv"
echo storeid,shopname,branchno,date,location,time,in-coming,out-going>%FileName%_
for /f "skip=1 tokens=1-2,4-5,7-9 delims=," %%a in (%FileName%) do (
set "pre=%FileName:~0,4%,%%~b,%%~a,%%~c,%%e,%%~d,%%~f,%%~g"
set "pre=!pre:, =,!" & set "pre=!pre:"=!"
echo !pre:,,=,0,!>>%FileName%_
)
ren %FileName% %FileName:~0,-4%.bak
ren %FileName%_ %FileName%
Хочется универсальности »
вариант на AWK:
@echo off
set $f=7420_Fil_AngANGARSK_D2011-01-21.csv
set $t=%TEMP%\%~n0.tmp
>"%$t%" echo storeid,shopname,branchno,date,location,time,in-coming,out-going
<"%$f%" >>"%$t%" awk -v FS=\",\" -v _=, ^
"NR>1{$0=substr($0,2,length()-2);sub(/.*, */,\"\",$6);print \"%$f:~,4%\"_$2_$1_$4_$6_$5_$7_$8}"
copy "%$t%" "%$f%">nul && del "%$t%"
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.