הפניית פלט אל קובץ - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

הפניית פלט אל קובץ


THE-MASTER

Recommended Posts

עדיף לדעתי שתלמד כיצד לרשום למערכת הקבצים דרך פסקל.

(עבודה עם קבצי טקסט לא אמורה להיות קשה במיוחד)

בכל אופן הפתרון שהוצא לך הוא הפניית הפלט לקובץ ע"י מערכת ההפעלה. ז"א  -

דרך ה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

יכול להיראות מורכב אבל בעצם ממש פשוט, אני אשמח להרחיב אם יש צורך.

קישור לתוכן
שתף באתרים אחרים

קודם כל תודה רבה על ההשקעה הערכתי את זה מאוד.

האמתי הכרתי כמעט את כל מה שאמרת חוץ מ---

c:\master.exe >> log.txt 2>>error.txt

ן מ------

ipconfig | find "Gateway" > log.txt

אבל מה שהתכוונתי שבקוד מקור של התוכנית עצמה תהיה פקודה כלשהיא להפניית הקלט.

שבכל מקרה של הידור התוכנית הקלט יופנה לקובץ כלשהו.

קישור לתוכן
שתף באתרים אחרים

כמו שכתבתי בהתחלה :)

לא יעיל להראות את זה על קצה המזלג, תראה כמה מדריכים חיפוש פשוט בגוגל מצא -

http://www.google.co.il/search?hl=en&ie=UTF-8&q=pascal+file+handling&spell=1

("Pascal File Handling")

האתר הראשון שנמצא נראה דיי מבטיח.

PASCAL: File Handling

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...