פורסם 2009 במאי 1416 שנים איך אפשר להשיג או ליצור קובץ כזה?אם יש לך eclipse אני יכול לכתוב לך קובץ ג'אווה ושתריץ אותו ואחרי זה תעשה COPY PASTE לכתבן או משהו
פורסם 2009 במאי 1416 שנים הכי פשוט, start > run > cmd.שם תרשום:echo offfor /l %p IN (0,1,1000000000) Do echo %p >> bla.txt(השורה הראשונה לא קריטית, היא סתם כדי שזה לא ידפיס לך את הכל על המסך)אבל סביר להניח שזה ייקח הרבה הרבה זמן (והגודל של הקובץ יהיה יותר מ-10 ג'יגה).דרכים יותר יעילות יהיו לכתוב תוכנה בשפת תכנות כלשהי שתעשה את זה (גם אז זה ייקח הרבה זמן, אבל משמעותית פחות).
פורסם 2009 במאי 1416 שנים קוד קצר ב C# שעושה את העבודה: StreamWriter S = new StreamWriter(@"C:\O.txt"); for (Int64 i = 1; i < 1000000000+1; i++) { S.WriteLine(i); S.Flush(); S.BaseStream.Seek(0,SeekOrigin.End); }אולי לא הכי יעיל בעולם, אפשר לעשות Flush כל מספר פעמים ולא כל פעם, אבל עובד.עריכה: אני רואה שהציעו שיטות קצת יותר משוכללות משלי, יפה יפה. נחמד ללמוד קצת על פקודות בקבצי batch מדי פעם.
פורסם 2009 במאי 1416 שנים כמו שציינתי, ב-batch זה מאוד לא יעיל (ניסיתי להריץ על 10000, לקח איזה חצי דקה.... אז אני מניח שאם רוצים פי 100000 מזה זה ייקח איזה חודש).חוץ מזה, כמו שכבר אמרתי - הקובץ הסופי יהיה ענק, יותר מ-10 ג'יגה.זה שמעליי - למה לעשות flush בכלל? ולמה לעשות seek?
פורסם 2009 במאי 1416 שנים אם לא עושים flush, לא מתבצעת כתיבה לקובץ. לגבי ה Seek , אני לא בטוח אם זה נחוץ כל איטרציה, אבל הייתה לי בעיה עם זה פעם, ככה שלא רציתי להסתבך שוב.
פורסם 2009 במאי 1416 שנים א. לרוב אחרי WriteLine יבוצע flush אוטומטית (אני זוכר שזה ככה ב-C, יכול להיות שב-#C זה אחרת).ב. מספיק לעשות flush פעם אחת בלבד בסוף התוכנית (אלא אם אתה מצפה שהתכנית תעוף מתישהו, מסיבה כלשהי), וגם זה לא נחוץ אם סוגרים את הקובץ כראוי (עושים dispose, או יותר טוב - עובדים עם using).ג. כמו שאמרתי, ה-seek לא נחוץ בכלל. כל עוד אתה לא נוגע במצביע, הוא תמיד ימשיך לכתוב למקום ממנו המשכת לכתוב (הבעיה יכולה לקרות אם אתה כותב במספר ת'רדים במקביל, מה שאתה לא עושה כאן).
פורסם 2009 במאי 1416 שנים פשוט מאוד בהנחה שאתה יודע שפת תיכנות כלשהי אפילו רק את הבסיס, פשוט תעשה לולאה(for מתאימה למקרה זה), תאתחל משתנה ל-0 וכל פעם שהתוכנית תבדוק אם המשתנה קטן או שווה למספר שאתה רוצה להגיע אליו, ואם זה קטן או שווה תקדם את הערך ב1(++) והפקודה הבאה תדפיס את הערך של המשתנה עד אשר תגיע למספר המבוקש בהצלחה
פורסם 2009 במאי 1516 שנים אני פחדתי ש Flush בסוף התוכנית, אחרי 1000000000 איטרציות, פשוט יזרוק Exception כי לא יהיה לו מספיק מקום בזיכרון.
פורסם 2009 במאי 1516 שנים מה זה בכלל flush?כתיבה (לקובץ או למסך) אף פעם לא מתבצעת מיד. כשאתה מדפיס משהו, אז התוכנה למעשה שומרת את מה שהדפסת בצד (במשהו שנקרא buffer), ולא באמת כותבת אותו לקובץ. כל כמה זמן, או אחרי פקודות מסויימות, מה שיושב בתוך ה-buffer באמת נכתב (למסך או לקובץ). הסיבה לכך היא שכתיבה לקובץ ולמסך הן פעולות מאוד מאוד איטיות (יחסית), ולכן עדיף לאגור את הפלט בצד, ואחת לכמה זמן לכתוב לקובץ הרבה פלט במכה.החסרון הוא שאם התוכנה מתרסקת, אז יכול להיות שיש נתונים שחשבת שנשמרו בקובץ, אבל התוכנה לא הספיקה לעשות את זה.הפעולה flush מכריחה את התוכנה לכתוב את מה שב-buffer לתוך הקובץ.
פורסם 2009 במאי 1516 שנים חחחחחחחחח מה הבחור צריך קובץ כזהמה אתה מכין רשימה לברוט פורס ?חחחחח אנשים ניהיים יותר ויותר משועממים
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.