שאלה

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

BravoMan

Active member
1. לא יודע איזה קובץ של QBASIC יש לך, אבל ייתכן שאם המחשב החדש עובד על Windows 10 ואתה הצלחת לשמור את קובץ ה-DOS המקורי, תזדקק ל-DOS BOX.
הנה האתר הרשמי:

2. ימחקו כל הקבצים במערכת?
אין דבר כזה.
כנראה לא הבנת את ההודעה או לחצת על משהו לא נכון.

3. אין דבר כזה "לא יודע לייצר קבצי טקסט".
התוכנה שלך בקובץ BAS, נכון?
תעשה copy paste לקובץ כדי שיהיה עותק, תשנה סיומת של העותק מ-BAS ל-TXT, וזהו - יש לך תוכנה בקובץ טקסט.

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

5. סברוטינה בבייסיק לא מחזירה ערכים.
בשביל זה יש פונקציות (ברוב שפות תכנות אין את ההפרדה הזו, אבל בביסיק יש).

יש דרך "לרמות" ע"י הכרזה על משתנה כ-"משותף" ככה שגם סברוטינה וגם התוכנה הראשית שלך יוכלו לגעת בו:

קוד:
DECLARE SUB CHANGEX ()
DIM SHARED X%
X% = 1
PRINT "X ="; X%
CALL CHANGEX
PRINT "X is changed to:"; X%

SUB CHANGEX
X% = 42
END SUB
 
בלי להחזיר ערך הסברוטינה שלי לא שווה כאן ואולי מוטב לכתוב במספרי שורות וזהו. אני יודע לעשות פונקציות מתמטיות בעזרת DEF FN, לא מכיר פונקציות פעולה. אשמח להעתיק לך את הקבצים מוורד לTXT, אבל כמו שכתבתי לך בפעם האחרונה שניסיתי לעשות זאת המחשב הזהיר שימחק את כל הקבצים במערכת. אולי המחשב שלי שונה. אולי זה לא היה מוורד אלא מקובץ מיושם ע"י בייסיק, שממנו ניסיתי להעתיק לTXT אז המחשב נבהל.
 
נערך לאחרונה ב:

BravoMan

Active member
מה שאתה קורא לו "פונקציות" זו רק צורה אחת מצומצמת.

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

הנה דוגמה לפונקציה אמתית שגם עושה פעולה, וגם מחזירה ערך:

קוד:
DECLARE FUNCTION ADDNUMBERS! () 
SUM% = ADDNUMBERS 
PRINT "Function returned:"; SUM% 
 
FUNCTION ADDNUMBERS 
INPUT "Write two numbers to add", A%, B% 
PRINT "This function will add"; A%; "and"; B% 
ADDNUMBERS = A% + B% 
END FUNCTION

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

התוכנה הרשית רק מדפיסה את מה שהפונקציה החזירה, כדי להראות שאכן חזר הערך הנכון.

לגבי המחשב שלך:
הוא לא שונה!
שום מחשב לא ימחק את כל הקבצים במערכת רק בגלל שאתה מנסה לשמור משהו כקובץ טקסט.
או שאתה מנסה לעבוד עלי או שאתה טועה.

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

1. תדביק את הקוד פה כמו שאני עושה.

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

ככה זה יראה כשאתה כותב הודעה:
'['code']'
PRINT "Hello BASIC!"
'['/code']'

רק בלי סימני ' כמובן.


2. תעתיק ותדביק את הקוד לאתר כמו pastebin.com ותצרף פה קישור.

3. תפתח Notepad, תדביק לשם את הקוד.

מן הסתם, כשאתה מכניס את הקוד שלך ל-WORD אתה עושה העתק -> הדבק, אז אני בטוח שאת זה אתה יודע.

בהצלחה!
 
אני מצרף לך קובץ שהכנתי במקור בוורד ובהצעתך העברתי לכתובת BAS. הוא מכיל את שתי התוכנות, אשמח אם תוכל לבדוק אותו.
 

קבצים מצורפים

  • A.BAS.docx
    KB 27.1 · צפיות: 2

BravoMan

Active member
אני לא יודע מה זה "העברתי לכתובת BAS", אבל הקובץ שצירפת הוא קובץ WORD לכל דבר.

אני חוזר על המלצתי שתפסיק להשתמש ב-Word.
תשתמש ב-Notepad ותשמור קבצים כ-TXT.

או תוריד Notepad++
הוא חינמי, חופשי, ומעולה לעריכת קוד אם אתה עובד ב-Windows.

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

BravoMan

Active member
אם במילה "כתובת" אתה מתכוון לסיום של שם הקובץ, הרי שזה לא משנה כלום - זה חסר משמעות!
הבעיה היא עם תוכן הקובץ, לא עם השם שלו.

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

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

קבצים מצורפים

  • AI.txt
    KB 8 · צפיות: 2
נערך לאחרונה ב:

BravoMan

Active member
הנה, זה קובץ תקין.
אסתכל על התוכנה בהזדמנות.

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

תזכור גם, שקבצי BAS הם למעשה קבצי TXT.

זה אומר שאם אתה כותב תוכנה ב-WORD, לא תוכל ישר להריץ אותה ב-QBASIC בלי לעשות את ההמרה, אבל אם אתה כותב ב-Notepad, אתה יכול להריץ ישר.

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

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

WORD פותחים רק מחברים קרובים או קולגות לעבודה, וגם אז כדאי להיזהר ולתת לאנטיווירוס לסרוק את הקובץ לפני הפתיחה!
 
אם כך כשאני שולח באתר כותבים במה חדשה סיפורים ושירים שלי שכתובים בוורד, איך אוודא שהם לא מסוכנים ויוכלו לקרוא אותם?
 
האם יש דרך לקרוא ולהריץ קבצי TXT שנכתבו בNOTEPAD, דרך QBASIC? עבדתי עוד קצת על הקבצים ואני חושב שיצאו טובים, כשיהיה לי בייסיק אם אפשר אולי אנסה להריץ אותם.
 
נערך לאחרונה ב:
תודה ועוד שאלה: אם כתבתי ידנית בNOTEPAD קובץ TXT שבכל שורה בו יש שני טקסטים עם פסיק צמוד להם ביניהם, האם אפשר יהיה לקרוא אותו דרך תוכנת בייסיק כאילו הפסיקים מפרידים בין ערכים שנקלטים מהקובץ?
 

BravoMan

Active member
תודה ועוד שאלה: אם כתבתי ידנית בNOTEPAD קובץ TXT שבכל שורה בו יש שני טקסטים עם פסיק צמוד להם ביניהם, האם אפשר יהיה לקרוא אותו דרך תוכנת בייסיק כאילו הפסיקים מפרידים בין ערכים שנקלטים מהקובץ?
כן, זו התנהגות ברירת מחדל של QBASIC.
כל פעם שאתה קורא ל-INPUT הוא יקרא עד פסיק, או עד סוף שורה אם אין פסיקים.

כלומר, אתה לא צריך לעשות שום דבר מיוחד, תמשיך להשתמש ב-INPUT כמו שאתה כבר עושה.
 
אני מצרף לך את הקבצים כדי שתוכל לבדוק אותם ולעבוד עליהם אם תרצה.
 

קבצים מצורפים

  • AI.BAS.txt
    KB 10.7 · צפיות: 2
  • CC.txt
    34 ביטים · צפיות: 1
  • MILON.txt
    KB 22.3 · צפיות: 1
  • RULES.txt
    956 ביטים · צפיות: 1
למעלה