דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. עזרה | כתיבת נתונים בקובץ CSV ע"י #C

עזרה | כתיבת נתונים בקובץ CSV ע"י #C

מתוזמן נעוץ נעול הועבר תכנות
4 פוסטים 3 כותבים 161 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אורייא מנותק
    אורייא מנותק
    אוריי
    כתב ב נערך לאחרונה על ידי אוריי
    #1

    אני רוצה ליצור קובץ log ע"ג קובץ CSV יש לי את הקוד הבא שעובד מעולה
    הבעיה היא שכרגע הוא מכניס את 2 הנתונים של הWriteLine בשתי שורות נפרדות (כלומר בתא A1 ו A2 )
    איך אני עושה שזה יכנס בשורה 1 כלומר שהDateTime.Now יכנס לעמודה A והSeconds יכנס לעמודה B

                    FileStream fs = new FileStream(Directory.GetCurrentDirectory() + @"\Privimail\log.csv",
                            FileMode.Append,
                            FileAccess.Write);
                    StreamWriter writer1 = new StreamWriter(fs);
    
                    writer1.WriteLine(DateTime.Now);
                    writer1.WriteLine(Seconds);
    
                    writer1.Close();
                    fs.Close();
    

    תודה רבה...

    ניתן לפנות אלי גם ב al0548446188@gmail.com
    ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

    dovidD תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      השיב לאוריי ב נערך לאחרונה על ידי dovid
      #2

      יש פקודת Write במקום WriteLine והיא לא עושה שורה חדשה.
      אבל אציע לך את הקוד שלך בצורה מתוקנת:

      using( var writer1 = new StreamWriter(@"Privimail\log.csv", true))
      {
          writer1.Write(DateTime.Now);
          writer1.WriteLine(Seconds);
      }
      

      שים לב שהשמטתי את התיקיה הנוכחית והשתמשתי בכתובת יחסית (לא מתחילה בכונן כל שהוא) ואז זה ממילא מתבסס על התיקיה הנוכחית.
      אבל גם הקוד הזה גדול ומסורבל בשביל הפעולה שהוא עושה (אלא"כ הולך להיות שמה לולאה שמכניסה כמה שורות, אבל גם אז יש פתרון אלגנטי של AppendAllLines).
      כלומר אם מדובר בהוספה של נתון אחד + תאריך שעה, שקול לכתוב פשוט יותר ככה:

      File.AppendAllText(@"Privimail\log.csv", DateTime.Now + "," + Seconds + "\n");
      

      (אולי לא צריך פסיק אחרי התאריך).

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      אורייא תגובה 1 תגובה אחרונה
      2
      • אורייא מנותק
        אורייא מנותק
        אוריי
        השיב לdovid ב נערך לאחרונה על ידי אוריי
        #3

        @dovid
        2 הקודים שכתבת מחזירים לי שגיאה כזו
        עריכה: עכשיו אני שם לב שהקובץ היה פתוח ולכן הוא החזיר שגיאה על כן הקוד הראשון שכתבת עובד
        אבל זה לא פותר לי את הבעיה שכתבתי לקמן ..

        Unhandled exception. System.IO.IOException: The process cannot access the file 'C:\Users\User\Desktop\Barbar\Privimail\log.csv' because it is being used by another process.
           at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
           at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
           at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
           at System.IO.StreamWriter.ValidateArgsAndOpenPath(String path, Boolean append, Encoding encoding, Int32 bufferSize)
           at System.IO.StreamWriter..ctor(String path, Boolean append)
           at tast1.Program.Main(String[] args)
        

        אמנם כאשר אני כותב כך

                        FileStream fs = new FileStream(Directory.GetCurrentDirectory() + @"\Privimail\log.csv",
                                FileMode.Append,
                                FileAccess.Write);
                        StreamWriter writer1 = new StreamWriter(fs);
                        writer1.Write(DateTime.Now);
                        writer1.WriteLine("00:00:50"); 
                        writer1.Close();
                        fs.Close();
        

        הוא עובד אבל מכניס לי את 2 הפרמטרים לתא אחד 14/05/2021 15:17:0900:00:50
        ואני ביקשתי..

        @אוריי אמר בעזרה | כתיבת נתונים בקובץ CSV ע"י #C:

        כלומר שהDateTime.Now יכנס לעמודה A והSeconds יכנס לעמודה B

        ואני יפשוט את שאלתי: איך אני מכניס את הערך שבשורה 6 לעמודה B בקובץ CSV?

        ניתן לפנות אלי גם ב al0548446188@gmail.com
        ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

        clickoneC תגובה 1 תגובה אחרונה
        0
        • clickoneC מנותק
          clickoneC מנותק
          clickone
          השיב לאוריי ב נערך לאחרונה על ידי
          #4

          @אוריי
          אתה צריך פסיק מפריד בין שורה 5 ל6
          אני מתחבר למה ש @dovid כתב לך למעלה

          @dovid אמר בעזרה | כתיבת נתונים בקובץ CSV ע"י #C:

          כלומר אם מדובר בהוספה של נתון אחד + תאריך שעה, שקול לכתוב פשוט יותר ככה:
          File.AppendAllText(@"Privimail\log.csv", DateTime.Now + "," + Seconds + "\n");

          (אולי לא צריך פסיק אחרי התאריך).

          אין טסט כמו פרודקשן.

          המייל שלי urivpn@gmail.com

          תגובה 1 תגובה אחרונה
          1

          בא תתחבר לדף היומי!
          • התחברות

          • אין לך חשבון עדיין? הרשמה

          • התחברו או הירשמו כדי לחפש.
          • פוסט ראשון
            פוסט אחרון
          0
          • דף הבית
          • קטגוריות
          • פוסטים אחרונים
          • משתמשים
          • חיפוש
          • חוקי הפורום