שתי שאלות ב-VB - עמוד 3 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שתי שאלות ב-VB


ניר.

Recommended Posts

  • תגובות 56
  • נוצר
  • תגובה אחרונה

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

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

בן.

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

לדעתי הבעיה שלך היא שאתה אומר ל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 ?

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

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


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

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

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

ארכיון

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


×
  • צור חדש...