2010-11-13 149 views
2

我想分开一个逗号分隔文件,出于某种原因,我似乎没有得到我期待得到的输出。VB6逗号分隔CSV文件

下面是代码:

strCSVPath = "E:\cfaApp\tester.csv" 
int77 = FreeFile 
Open strCSVPath For Input As #int77 

Do Until EOF(int77) 
    Input #int77, strName, intHours, strMon, strTue, strWed, strThu, strFri, strSat 
    Debug.Print strName & vbCr & intHours 
    'Debug.Print strName & vbCr & intHours & vbCr & strMon & vbCr & strTue & vbCr & strWed & vbCr & strThu & vbCr & strFri & vbCr & strSat & vbCr 
Loop 

输出看起来是这样的:

1.0-Store Manager (1 Employee) 

11:00 AM-8:30 PM 

10:00 AM-7:30 PM 
1.1-Assistant Managers 
Wood, Chris 

上面的输出是错误的。这是CSV文件(有些是,不是所有的)

1.0-Store Manager (1 Employee),,,,,,,, 
"Pro, Bob",1.0-Store Manager,47.5,5:30 AM-3:00 PM,5:30 AM-3:00 PM,11:00 AM-8:30 PM,11:00 AM-8:30 PM,9:00 AM-6:30 PM,OFF 
1.1-Assistant Managers (3 Employees),,,,,,,, 
"Crow, Billy",1.1-Assistant Managers,47.5,10:00 AM-7:30 PM,5:30 AM-3:00 PM,5:30 AM-3:00 PM,5:30 AM-3:00 PM,OFF,11:00 AM-8:30 PM 
"Ras, Pat",1.1-Assistant Managers,47.5,5:30 AM-3:00 PM,9:00 AM-6:30 PM,10:00 AM-7:30 PM,,11:00 AM-8:30 PM,9:00 AM-6:30 PM 
"Wood, Chris",1.1-Assistant Managers,47.5,,11:00 AM-8:00 PM,8:30 AM-6:30 PM,10:00 AM-7:30 PM,5:30 AM-3:00 PM,5:30 AM-3:00 PM 
1.2- Supervisors (7 Employees),,,,,,,, 

正如你所看到的,输出不跳过临,鲍勃干脆。然后在显示Wood之前跳过Crow和Ras。

我也得到

Input past end of file 

回答

0

尝试使用其他分隔符,如;或管道。 然后看看输出是否正常。 如果是试图引用名称中的逗号或设置其他引号中的名称,如' 玩得开心, 约翰

+0

请给出例子来扩展你的答案吗? (欢迎使用堆栈溢出!) – 2014-09-01 13:42:51

+0

一个班轮答案不是很好的答案。请发布代码或提供详细说明。 – 2014-09-01 13:45:39

+0

CSV文件是包含以','或';'分隔的数据的文件。 在这种情况下,您已分隔','。 数据文件中的'姓氏,名字'部分也包含com','。这可能会导致问题。 – 2014-09-02 14:23:08