טעינת קובץ CSV

פורומים אפיון ופיתוח פריוריטי טעינת קובץ CSV

  • Post
    קוקו
    משתתף
    היי,

    מנסה לטעון קובץ CSV (מופרד טאבים) באמצעות DBLOAD,
    משום מה במקום לחלק כל שורה למשתנה קלט אחר התכונית מכניסה את כל השורה למשתנה הראשון והבאים אחריו ריקים…

    ההגדרת טעינה מסומנת כקובץ מופרד טאבים כנדרש … לא מצליח להבין למה זה קורה, יש לי עוד תוכניות שבהן הקבצים נטענים כמו שצריך והכל מוגדר אותו הדבר ..

    רעיונות?

    תודה

מוצגות 4 תגובות – 1 עד 4 (מתוך 4 סה״כ)
  • Replies
    קוקו
    משתתף

    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 = 1

    Query 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

    קוקו
    משתתף
    לא ברור מה עבר עלי כשבילבלתי פסיקים עם טאבים, בכל אופן, אם יש למישהו רעיון איך לטעון בקלות קבצי CSV מוזמן להגיב
    Lior
    מנהל בפורום
    אם מדובר בטעינה חד פעמית -שמור אותו ב TAB DELIMITED באמצעות אקסל וטען.
    אם לא, או שתבקש שיספקו לך מופרד TAB או שתפתח תוכנית קטנה שתמיר לך מ CSV ל TAB. אולי יש אפילו כלי כזה שניתן להורדה בחינם. תנסה לחפש.
    קוקו
    משתתף
    היי ליאור,

    לא מדובר בחד פעמי ולכן כתבתי סקריפט סופר קצר שממיר 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")

    }

מוצגות 4 תגובות – 1 עד 4 (מתוך 4 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.