Вопрос : Как прочитать CSV using линия передачи команд Windows

Для bassicly ориентированного архива применение я должен написать некоторые процедуры. их читать архив csv и пишет 2 других архива основанного на информации в первом contence file.
De входного файла как:

#, 6/29/2010,
222857293,2857293, V.E.C. Klanta, en/of V.E.C. Klantc, 3
223509302,3509302, V.E.C.Klantb, 9

The ДЛЯ командование, котор я использую имеет тревогу с пустым полем (четвертью) в последней линии. Действие писания (отголосок в фрагменте) сделано в зависимости от 3 или 9 в последнем поле. Теперь полем 4 будет пустое поле 4 получит значению поля 5.
Is там дорогу предотвратить это beheavior ДЛЯ командование?

Thanks в предварительном!
John
class= " ясное " >
> " codeSnippet " class=
class= " lineNumbers "
class=
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
class= " id= " codeSnippet837878
:: Создавать группу смотрителя
::  9 = KB
::  3 = ABN
:: ******************************************************
: create_custodian_group
  
  ДЛЯ /F «delims= skip=1 tokens=1,2,3,4,5,» %%G внутри (%a_vanvec%vecacc.csv) делают (
    звонок: s_write_group %%G %%H «%%I» «%%J» %%K)
  ПЕРЕХОД: einde
  
: s_write_group

если не ==, то [%5] [3] (
  если не ==, то [%5] [9] (
    вторьте Кодему 1=%1 2=%2 3=%3 4=%4 5=%5 неправильному
  ) еще (
    отголосок KB = от %1 до %5
  )
) другое abn отголоска = от %1 до %5

:: конец подпрограммы
  ПЕРЕХОД: eof

: einde
перерыв
class=

Ответ : Как прочитать CSV using линия передачи команд Windows

Не будет любой дороги сказать ДЛЯ командование не обработать последовательные delims как одиночное delim.  Дорога, котор я типично работаю вокруг этого должна «pre обрабатывать» линию входного сигнала и искать пары delims с ничего между ими.  Я заменяю ть эти с что-то между delims я могу после этого проверить для в Кодего и обработать как пропавшее или пустое значение.

Так если линия входного сигнала была

aaa, bbb



aaa, @, @, bbb

и после этого подайте то в ДЛЯ и parse на запятом.

Я прикрепляю Кодего с этим изменением, препятствую мне умею как он идет для вас.  Я сделал несколько другие малые регулировки, препятствую мне знаю что вопросы вы имеете.

- необходимо добавить setlocal EnableDelayedExpansion так как я smog уточнить и использовать перемеююый внутри петли

- определил входной файл - имя как перемеююый, и после того как я закавычено ему в основе ДЛЯ того читает его, для того чтобы отрегулировать случай где filename smog включить космосы

- наружная ДЛЯ петли читает всю линию, тогда мы задаем то к перемеююому так, что мы сможем заменить «пустые» значения с placeholder (я использовал @, smog быть что-нибыдь, котор вы любите)

- после этого другое ДЛЯ больше как ваше первоначально одного parses возникающий шнур и вызывает подпрограмму

- Я добавил ОТГОЛОСОК inputline прежде и после преобразование как раз так, котор вы можете увидеть как они работают, эти извлекл более поздно

Понадейтесь что это помогает

~bp
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
@echo 
setlocal EnableDelayedExpansion
 
Бэр создавая группу смотрителя
БЭР  9 = KB
БЭР  3 = ABN
****************************************************** Бэра
установите InputFile=%a_vanvec%vecacc.csv
 
: create_custodian_group
  
для /F «tokens=*» %%A usebackq skip=1 в ("%InputFile%") сделайте (
  установите InputLine=%%A
  отголосок РАНЬШЕ: ! InputLine!
  для /L %%B внутри (1.1.20) сделайте (
    установите InputLine=! InputLine: , =, @!
  )
  отголосок ПОЖЕ: ! InputLine!
  для /F «delims= tokens=1-5,» %%G внутри ("! InputLine! ") сделайте (
    звонок: s_write_group %%G %%H «%%I» «%%J» %%K
  )
)
ПЕРЕХОД: einde
  
: s_write_group
  если не ==, то [%5] [3] (
    если не ==, то [%5] [9] (
      отголосок 1=%1 2=%2 3=%3 4=%4 5=%5 вредит Кодему
    ) еще (
      отголосок KB = от %1 до %5
    )
  ) еще (
    abn отголоска = от %1 до %5
  )
 
  Конец бэра подпрограммы
  ПЕРЕХОД: eof
 
: einde
  перерыв
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us