עבור לתוכן

שתי שאלות ב-VB

Featured Replies

פורסם

והקובץ הזה קיים?

אם אתה עושה start > run ומעתיק את זה לשם, זה פותח את הקובץ?

  • תגובות 56
  • צפיות 5.2k
  • נוצר
  • תגובה אחרונה
פורסם
  • מחבר

כן..

פורסם

well, i'm stumped.

אם היה לי כאן VB אז הייתי יכול לנסות לעזור יותר... נאלץ לחכות למישהו שיודע קצת יותר.

פורסם
  • מחבר

אז תגיד מראש שאין לך...

אתה יודע בכלל VB?

מישהוא אחר יודע ויכול לעזור.....

פורסם

יכול להיות שהקובץ שאתה מנסה לפתוח לא נמצא בתיקייה של הקובץ שאתה מריץ?

בכל מקרה, תנסה לכתוב את המיקום המדויק של הקובץ (תכנס למחשב שלי ותנווט עד שאתה מגיע לתיקייה של הקובץ ותעתיק את המיקום, תוסיף את שם הקובץ ואחריו את הסיומת).

בן.

פורסם
  • מחבר

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

פורסם

לדעתי הבעיה שלך היא שאתה אומר לvb לפתוח קובץ txt, עם פקודה שמה שהיא יודעת לעשות זה להפעיל קבצי exe (פקודת shell סה"כ).

כידוע, קובץ txt הוא לא קובץ exe (אני מבין את הדימיון). אתה צריך לומר לvb לפתוח את הקובץ הזה בעזרת notepad, ולא פשוט להריץ את הקובץ, כי זה לא יעבוד.

בקיצור, לדעתי הפקודה צריכה להיראות בסגנון הזה:

shell("notepad" + " " + appPath + "\file.txt")

בעצם לומר לvb להריץ את notepad, משורשר אליו שם הקובץ שאותו הוא אמור לפתוח (שים לב שיהיה איזה רווח בין שם התוכנה שאתה מריץ, לבין הארגומנטים שהיא מקבלת).

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

הרעיון מאחורי הפתרון הוא פשוט. shell commands הן בעצם הפקודות שאתה מריץ דרך האפשרות Run של ווינדוס (start -> run), ושם, אם תכתוב סתם שם של קובץ טקסט, לא יקרה כלום, אבל אם תכתוב "notepad", ולאחר מכן מיקום פיזי של קובץ טקסט כלשהו, אזי הקובץ יפתח בתוך notepad.

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

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

פורסם
  • מחבר

סבבה אנחנו מתקדמים..

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

כיצד משנים את זה כך שזה יקפוץ אוטומטי?

האם ניתן לפתוח כך גם קבצים אחרים כגון:ADOBE (file.pdf) , word ?

פורסם

האמת היא שזה מפתיע אותי. הייתי בטוח שפקודת ה-Shell יודעת להריץ קבצים שאינם קבצי הרצה, דרך ה-windows (אם תיכנס ל-cmd ותפעיל משם קובץ טקסט, הוא יידע לפתוח אותו ב-notepad).

אם זה באמת לא אפשרי, אז לכל סוג של קובץ אתה צריך למצוא את התוכנה שיודעת לפתוח אותו (שזה אומר למצוא את הממשק של חלונות לדעת איזה תוכנה פותחת כל טיפוס של קובץ, בהנחה שאתה לא יכול לנחש איפה בדיוק מותקן ה-word או ה-adobe reader).

ולגבי השאלה הראשונה - תקרא כאן:

http://msdn2.microsoft.com/en-us/library/aa242087(VS.60).aspx

ותגיד לנו בעצמך.

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

פורסם
  • מחבר

הוא רושם לי שגיאה שאומרת שאני חייב להציב את הפקודה SHELL בתוך משתנה מסוג DOUBLE ..

האם הפונקציה הזאת באמת מחזירה ערך?

למה זה פתאום קרה לי משום שזה לא קרה לי בבדיקה הקודמת?

פורסם

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

מוזר לי שVB מחייב אותך להשתמש בו...

עוד סיבה למה VB זו אחת השפות הגרועות יותר שפותחו :)

פורסם
  • מחבר

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

מוזר לי שVB מחייב אותך להשתמש בו...

עוד סיבה למה VB זו אחת השפות הגרועות יותר שפותחו :)

למה אני צריך את ה-process id ?

פורסם

אתה לא צריך אותו.

אפשר להשתמש בו בשביל כל מיני דברים (נניח, אם אתה רוצה לסגור את הprocess שיצרת מתוך התכנית שלך).

פורסם
  • מחבר

אז בלי שאני יצור משתנה שיחזיק את הערך המוחזר אז היא ימשיך לכתוב לי את השגיאה:


sytenx eroor

מה לעשות ואיך פותרים את הבעיה הזאת?

פורסם

פשוט מאוד,ולהבא בקש בצורה יפה יותר:


x = Shell("notepad" + " " + appPath + "\file.txt", vbMaximizedFocus)

שים לב שX יכול להיות למעשה כל משתנה ואם אני לא טועה אז אפשר לעשות גם IF על המשתנה הזה והוא יחזיר 0 במקרה של שגיאה,אבל אל תתפוס אותי במילה.

ארכיון

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

דיונים חדשים