פורסם 2004 באוקטובר 521 שנים מחבר אפשר לקבל הסבר יותר מפורט כי זה לא ברור מה שאמרת..כמו כן האם אפשר להפנות רק חלק מהפלט של התוכנית למסמך טקסט ואם כן(בטוח שאפשר) אז איך??
פורסם 2004 באוקטובר 521 שנים עדיף לדעתי שתלמד כיצד לרשום למערכת הקבצים דרך פסקל. (עבודה עם קבצי טקסט לא אמורה להיות קשה במיוחד) בכל אופן הפתרון שהוצא לך הוא הפניית הפלט לקובץ ע"י מערכת ההפעלה. ז"א - דרך הCommand Prompt תרשום את שם התוכנית שלך ואחריה את הסימן < שמורה למערכת ההפעלה לנתב את הפלט להתקן אחר מאשר המסך. לדוגמא נניח ששם התוכנית הוא master.exe אז מה שעליך לעשות זה : c:\master.exe > log.txt זה ינתב את כל הפלט של התוכנה לקובץ log.txt כדאי לציין שאם קיים קובץ בשם log.txt באותה תקייה הוא ידרס לפני שיכתב הפלט אליו. אם ברצונך להוסיף לקובץ שורות בכל פעם מבלי למחוק את תוכנו עליך להשתמש בסימן << במקום < לדוגמא : c:\master.exe >> log.txt עוד כדאי לציין שמערכת ההפעלה יכולה לקבל מתוכנות שני סוגים של פלטים - פלט רגיל, ופלט אלטרנטיבי (אשר נמצא בשימוש במקרה של שגיאה או תקלה). לכן אם התוכנה שאת הפלט שלה רצית לנתב לקובץ הציגה שגיאה יש סיכוי שהיא לא תיכנס לקובץ אלא בכל זאת תוצג על המסך. על מנת להכניס גם את הפלט האלטרנטיבי לקובץ יש להשתמש בסימנים <<2 ו <2 (אותו דבר כמו קודם רק עם 2 לפני), לדוגמא - c:\master.exe >> log.txt 2>>error.txt הפקודה הזו תנתב את הפלט הסטנדרטי לקובץ log.txt ובמקרה של שגיאה היא תנתב את הפלט האלטרנטיבי לקובץ error.txt, בתנאי כמובן שהתוכנה כתובה כראוי. (ניתן לעשות שילובים ) אם רצית לסנן את הפלט של התוכנה לפני הרישום לקובץ ניתן לעשות זאת ע"י שימוש ב"שירשור פלט" ע"י הסימן | (\ + SHIFT) ולשרשר את הפלט לתוכנה אחרת שתסנן אותו עבורינו, לדוגמא Find של ווינדוס. לדוגמא נניח שברצונו לעשות סקריפט אשר רושם בקובץ את כתובת ה Default Gateway הנוכחי של המחשב. על מנת לעשות זאת נשתמש בפקודה ipconfig אשר מראה את הגדרות הרשת הנוכחיות. כמו שהראתי קודם, בכדי לנתב את הפלט של ipconfig לקובץ נשתמש בסימן הניתוב < כך - ipconfig > log.txt אך ipconfig מראה הרבה נתונים ולא רק את כתובת ה Default Gateway. בכדי לסנן את הפלט של ipconfig נשרשר אותו עם | לFind אשר תציג רק את השורה שמכילה את המחרוזת שניתן לה (במקרה הזה - gateway) ואת הפלט הסופי ננתב לlog.txt - ipconfig | find "Gateway" > log.txt כעת בlog.txt רשום רק שורה אחת המכילה את כתובת הGateway הנוכחית. הסבר - Find קיבלה את הפלט של ipconfig מהסימן | והחזירה בתור פלט את השורה שמכילה את המילה Gateway. את הפלט של Find ניתבנו לקובץ log.txt עם הסימן < . עד כאן Batch-101 ;D יכול להיראות מורכב אבל בעצם ממש פשוט, אני אשמח להרחיב אם יש צורך.
פורסם 2004 באוקטובר 521 שנים מחבר קודם כל תודה רבה על ההשקעה הערכתי את זה מאוד.האמתי הכרתי כמעט את כל מה שאמרת חוץ מ---c:\master.exe >> log.txt 2>>error.txtן מ------ipconfig | find "Gateway" > log.txtאבל מה שהתכוונתי שבקוד מקור של התוכנית עצמה תהיה פקודה כלשהיא להפניית הקלט.שבכל מקרה של הידור התוכנית הקלט יופנה לקובץ כלשהו.
פורסם 2004 באוקטובר 521 שנים כמו שכתבתי בהתחלה לא יעיל להראות את זה על קצה המזלג, תראה כמה מדריכים חיפוש פשוט בגוגל מצא - http://www.google.co.il/search?hl=en&ie=UTF-8&q=pascal+file+handling&spell=1 ("Pascal File Handling") האתר הראשון שנמצא נראה דיי מבטיח. PASCAL: File Handling
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.