› פורומים › אפיון ופיתוח פריוריטי › טעינת קובץ CSV
- This topic has 4 תגובות, 2 משתתפים, and was last updated לפני 13 שנים, 5 חודשים by קוקו.
- Post
-
- יוני 26, 2011 בשעה 7:32 pm
היי,מנסה לטעון קובץ CSV (מופרד טאבים) באמצעות DBLOAD,
משום מה במקום לחלק כל שורה למשתנה קלט אחר התכונית מכניסה את כל השורה למשתנה הראשון והבאים אחריו ריקים…ההגדרת טעינה מסומנת כקובץ מופרד טאבים כנדרש … לא מצליח להבין למה זה קורה, יש לי עוד תוכניות שבהן הקבצים נטענים כמו שצריך והכל מוגדר אותו הדבר ..
רעיונות?
תודה
- Replies
-
- יוני 26, 2011 בשעה 7:36 pm
Query List =
/*1*/ SELECT '>', :A1, '|', :A2, :A3
FROM DUMMY
ASCII ADDTO 'C:\TMP\TEST.TXT';Execute Query =
1.SELECT
:A1 = '"bla1","bla2","bla3","bla4"';
:A2 = '';
:A3 = '';
Return value = 1Query List =
/*1*/ SELECT '>', :A1, '|', :A2, :A3
FROM DUMMY
ASCII ADDTO 'C:\TMP\TEST.TXT';Execute Query =
1.SELECT
:A1 = 'tst1,tst2,tst3,tdt4';
:A2 = '';
:A3 = '';
Return value = 1- יוני 27, 2011 בשעה 2:53 am
לא ברור מה עבר עלי כשבילבלתי פסיקים עם טאבים, בכל אופן, אם יש למישהו רעיון איך לטעון בקלות קבצי CSV מוזמן להגיב- יוני 28, 2011 בשעה 4:05 pm
אם מדובר בטעינה חד פעמית -שמור אותו ב TAB DELIMITED באמצעות אקסל וטען.
אם לא, או שתבקש שיספקו לך מופרד TAB או שתפתח תוכנית קטנה שתמיר לך מ CSV ל TAB. אולי יש אפילו כלי כזה שניתן להורדה בחינם. תנסה לחפש.- יוני 28, 2011 בשעה 4:24 pm
היי ליאור,לא מדובר בחד פעמי ולכן כתבתי סקריפט סופר קצר שממיר CSV לTAB (או TSV). מצורף כאן אם מישהו ימצא את זה שימושי בעתיד. יש להריץ את זה עם תוכנת GAWK חינמית של GNU (אפשר אפילו מEXECUTE בפריוריטי)
# // Convert csv to tab delimited
{
# // ignore case difference
IGNORECASE = 1;
#//inQuotes
#//0=normal, 1=in quotes
inQuotes = 0;
for(i=1; i <= length($0); i++)
{
c = substr($0, i, 1)
if(c == "\t") #// tab in csv file? scrap it
printf("\\t");
else
if(c == "\"")
inQuotes = ! inQuotes; #// toggle quotes flag
else
if(c == "," && inQuotes) #// comma in quotes - print it
printf("%s",c);
else
if(c == "," && ! inQuotes) #// comma out of quotes - convert to tab
printf("\t");
else
printf("%s",c); #// everything else - print it
}
printf("%s","\n")
}
- יש להתחבר למערכת על מנת להגיב.