ניווט

    תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    1. דף הבית
    2. yossiz
    • פרופיל
    • עוקב אחרי
    • עוקבים
    • נושאים
    • פוסטים
    • הגבוה ביותר
    • קבוצות

    yossiz

    @yossiz

    4930
    מוניטין
    2349
    פוסטים
    4260
    צפיות בפרופיל
    3
    עוקבים
    0
    עוקב אחרי
    הצטרף התחבר לאחרונה
    כתובת אימייל yossizahn@gmail.com

    yossiz עקוב
    תכנות

    הפוסטים הטובים ביותר שנוצרו על ידי yossiz

    • מדריך: שורת הפקודה

      הבהרות

      הבהרה1: נא לסלוח על טעויות כתיב והחלפות זכר לנקבה וכדו', עברית היא לא שפת אם שלי
      הבהרה2: יש הרבה שורות פקודה, נשתדל לא להתמקד בשום אחד מהם אלא לדבר על דברים שקשורים לכולם
      הבהרה3: אין צורך בשום ידע מוקדם, חוץ מלדעת איפה נמצא כפתור ההפעלה של המחשב...
      הבהרה4: אין שום התחייבות להמשיך את הסדרה, זה על בסיס זמן פנוי וחשק...
      הבהרה5: למען הסדר הטוב, פתחתי עוד נושא לתגובות, נא להגיב שם. כאן אני מתכוון להעלות המשכים לסדרה.
      הבהרה6: בל"נ לא יהיו עוד הבהרות ומיד ניגש לענין...

      הקדמה: שורת הפקודה מהו

      לרוב האנשים המילה "תוכנה" אומרת: "חלון, ובתוכו אובייקטים גראפיים, שבאמצעות אינטראקציה איתם אפשר לעשות פעולות מסויימות". זהו התוכנה האינטראקטיבית. הוא נמצא כל הזמן (עד שתסגור אותו), כל מרכולתו פרושה לפניך, הוא יושב ומחכה לתגובה שלך, ורק נשאר לך לבחור מה אתה רוצה. אתה בוחר משהו, הוא עושה את הפעולה, ושוב חוזר ומחכה לתגובה הבא שלך. התוכנה ה"לא איטראקטיבי" או ה"פקודה", לעומת זאת, אינו יושב ומחכה לתגובה שלך (כמעט) אף פעם, מריצים אותו, הוא עושה מה שביקשת ומיד מסיים תהליך ונסגר. רוצה עוד משהו? צריך להריץ אותו שוב.
      בד"כ מריצים תוכנה באמצעות תוכנה אחרת שנקרא ה-shell (מעטפת). יש shell גראפי (בווינדוס נקרא explorer.exe) ובאמצעיתו אפשר להריץ תוכנות אינטראקטיביות ע"י לחיצה על אייקון, ויש shell טקסטואלי שבו מריצים תוכנות ע"י כתיבת שמם וזהו שורת הפקודה.

      שורת הפקודה = סביבה מבוסס טקסט שבה מריצים תוכנות (לרוב, פקודות לא אינטראקטיביות), (CMD ב-Windows ו-DOS (ז"ל) או Powershell בווינדוס, bash, sh, וכו' בלינוקס, וכו')

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

      רכיבים של שורת פקודה

      • מקום לקלט (input) - כאן מזינים את הפקודות.
      • מקום לפלט (output) - כאן מקבלים תוצאות. (בד"כ זה אותו חלון של הקלט)
      • PROMPT (הנחיה?) - רמז ויזואלי שהסביבה מוכן לקבל קלט. כאשר פקודה רצה, הסמן המהבהב נמצא בשורה בפנ"ע בלי PROMPT לפניה (לפעמים יש פלט של הפקודה שרצה, לפעמים לא). כאשר הפקודה מסתיימת, ושורת הפקודה מוכנה לקבל עוד פקודה, מודפס שוב שורת ה-PROMPT ואח"כ סמן מהבהב, זה סימן שאפשר להתחיל לכתוב עוד פקודה.
        זה נראה משהו כזה בווינדוס:
      C:\Users\yossi>_
      

      (למה כתוב נתיב ב-PROMPT? נגיע לזה יותר מאוחר).

      רכיבים של "פקודה" (תוכנה לא אינטראקטיבית)

      הרכיבים: קלט, פלט, וחישוב
      הפקודה מקבלת קלט עושה עם זה חישוב ומחזירה את הפלט. (לא תמיד חייבים כל הרכיבים).

      קלט

      יש כמה דרכים להכניס קלט לפקודה

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

      דוגמא:

      echo "Hello, World!"
      

      echo הוא שם הפקודה. פקודה זו לוקחת את הפרמטרים ופולט אותם החוצה, בלי להפעיל עליהם שום חישובים.
      "Hello, World!" הוא פרמטר שהפקודה מקבלת.
      הפלט:

      Hello, World!
      

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

      echo Hello, World!
      

      ואז זה היה מתורגם לפקודה עם 2 פרמטרים - "Hello," ו-"World!". במקרה שיש יותר מפרמטר אחד, הפקודה echo פולט אותם החוצה עם רווח ביניהם, ונקבל אותו פלט.
      אמנם, מה יקרה אם נכתוב:

      echo "Hello,       World!"
      echo Hello,       World!
      

      הפלט יהיה:

      Hello,       World!
      Hello, World!
      

      (אזהרה: הנ"ל נכון רק ב-bash, ב-CMD זה לא יעבוד, אבל העיקרון נכון גם ב-CMD רק שecho הוא לא פקודה רגילה ב-CMD, אולי נסביר יותר בהמשך)
      במקרה הראשון יש פרמטר אחד עם הרבה רווחים באמצע, במקרה השני יש 2 פרמטרים בלי שום רווחים, הרווחים מתורגמים כמחלקים בין הפרמטרים, ולא מוזנים לפקודה.

      עוד דרכים להזנת קלט:

      • קבצים
      • משתני סביבה

      פלט

      • טקסט מודפס בחלון שורת הפקודה
      • פעולה שקורה (למשל כיבוי המחשב)
      • קבצים
      • קוד (מספר) שהתוכנה מחזירה - (return code)
      • ....

      ההמשך יבוא... (אולי כן, ואולי לא...)

      פורסם בתוכנה
      yossiz
      yossiz
    • שיתוף: 🔖 סימניה להורדת תוסף כרום

      סימניה להורדת קבצי CRX מחנות כרום.
      מפעילים את הסימניה, מכניסים מזהה של תוסף (לדוגמה: aapbdbdomjkkjkaonfhkkikfgjllcleb) או כתובת של תוסף בחנות (לדוגמה: https://chrome.google.com/webstore/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb) וזה מוריד את התוסף בשבילך.

      javascript:id = prompt("הכנס מזהה או כתובת התוסף"); (id = /[a-z]{32}/.exec(id)) ? window.open("https://update.googleapis.com/service/update2/crx?response=redirect&acceptformat=crx3&prodversion=38.0&testsource=download-crx&x=id%253D"+id[0]+"%2526installsource%253Dondemand%2526uc"): alert("מזהה או כתובת לא חוקי")
      
      פורסם באינטרנט
      yossiz
      yossiz
    • RE: כללים לחיפושי גוגל יעילים

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

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

      @שרגה-קליין שאל פה על הודעת שגיאה זו:

      אז מה אמור להיות התהליך לחפש פתרון?

      קודם כל, לפני חיפוש כלשהו, ננסה להבין מה נמצא בתמונה שלפננו.
      יש הודעת שגיאה די ג'נרית (error launching installer = שגיאה בעת הפעלת ההתקנה) זה לא אומר לנו הרבה.
      מה שיכול לתרום יותר פרטים הוא הכותרת "NSIS Error"
      בהתאם לכלל א' שכתבתי בפוסט הראשון, קודם כל ננסה להבין מה זה אומר NSIS Error?
      errror = שגיאה, אבל מה זה NSIS?
      אני דוקא הכרתי מקודם מה זה NSIS אבל אם לא הכרת, חיפוש מהיר למילה NSIS ייתן לך להבין שמדובר בתוכנה שעושה "תוכנות התקנה" עבור מפתחי תוכנות.
      אז הצלחנו למקד קצת את השאלה: מה גורם ל-installer שמגיע מייצור NSIS לזרוק שגיאה שנוסחתו "error launching installer".
      במקום לחפש "error launching installer" נחפש "NSIS error launching installer".
      (דוקא במקרה זו, נראה שרוב תוצאות החיפוש גם של "error launching installer" מדברים על NSIS, כנראה שהניסוח הספציפי הזאת הוא ייחודי ל-NSIS, אבל בכל זאת יש תוצאות טובות יותר בחיפוש של "NSIS error launching installer")

      עכשיו נעבור על התוצאות וננסה להשתמש קצת ג"כ בשכל בריא להגיע לתשובה הנכונה ביותר:

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

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

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

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

      ליתר ביטחון עשיתי חיפוש משני למצוא איך נראה שגיאה שמגיעה משיבוש קבצי ההתקנה.
      איך עשיתי את החיפוש?
      לקחתי את הפתרון הרביעי בדף. שם הם מציעים להריץ את תוכנת ההתקנה עם הפרמטר NCRC/ , מכיון שהבנתי מה שהפרמטר עושה, ושזה מיועד בדיוק בשביל בעיה של שיבוש קבצי ההתקנה, ידעתי שאם אחפש "NSIS NCRC" אגיע בוודאות לדף שיתאר את השגיאה כי זה צירוף מילים שלא יופיע בשום הקשר אחר (כלל ב). ואכן בתוצאה השנייה יש תיאור איך השגיאה אמורה ליראות:

      Installer integrity check has failed. Common causes include
      incomplete download and damaged media. Contact the
      installer's author to obtain a new copy.
      More information at:
      http://nsis.sf.net/NSIS_Error

      אבל נשים את הבקורות בצד לרגע, ונעבור על הפתרונות

      METHOD 1: נראה כשטויות במיץ,, נעבור לשיטה הבאה
      (כלל ברזל: אל תוריד שום תוכנה אף פעם אם אתה לא חיפשת אותה אלא היא חיפשה אותך... )
      METHOD 2: נעביר את השיטה במבחן השכל הישר (ונסיון העבר),
      לדעתי, אפשר קצת להבין למה זה יכול לעזור, כי יש תוכנות שלא אוהבים רווחים בנתיב שלהם או תווים לא נפוצים, אבל לא כ"כ מסתבר שבתוכנה נפוצה ובתשע"ט יהיה בעיה כזו, אז נרשום את זה לשימוש אפשרי ונעבור הלאה.
      METHOD 3: מבוסס על התיאור הלא נכון של הבעיה שבקטע הראשון, מכיון שכבר החלטתי (מתוך ידע מוקדם) שתיאור הבעיה לא נכונה, פסלתי אותו.
      METHOD 4: שיטה זו נראה מאוד ספציפי ולא ג'נרי, אבל הוא גם מבוסס על תיאור לא נכון של הבעיה
      כל השאר לא שווים לייחד עליהם את הדיבור בכלל....

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

      • https://answers.microsoft.com - מנסיון העבר, קשה למצוא שם פתרונות טובים
      • https://www.sevenforums.com/ - נו נו
      • How to Solve NSIS Error: 4 Steps
        https://www.instructables.com
        שוב אתר ספמי מובהק

      עד שהגעתי לתוצאה האחרונה בדף הראשון -
      Error Launching Installer - NSIS
      https://nsis.sourceforge.io/Error_Launching_Installer

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

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

      להשתמש בגוגל כעזר לשכל הישר ולא כתחליף לשכל הישר... 🙂

      בכל שלב נעזרתי בנסיון העבר ושכל הישר (לפחות לדעתי...)

      פורסם באינטרנט
      yossiz
      yossiz
    • RE: תודה רבה לחברי הפורום

      חברה, תשמעו,
      מסתבר שכל הדיבורים החמים שיצאו מן הלב, לאט לאט חלחלו ועשו את שלהם...
      אני מקבל איתותים שהניק הכי אהוב בפורום (מבלי למעט בחשיבותו של כל האחרים כל אחד בשמו הטוב יבורך) שוקל ברצינות לחזור. (מי באמת חשב שהוא יעזוב לנצח?). ייתכן שבקרוב (אפילו הערב) נראה את האור הירוק 0f0fec22-5311-4b61-97fc-7b7d54fc1c31-image.png מבלי להזדקק לפיטשופים 🙂
      👏 👏 👏 👏

      פורסם בעל הפורום
      yossiz
      yossiz
    • בקשת אישור מתוך קובץ BAT בממשק גראפי

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

      chcp 1255
      (echo WScript.Quit msgbox("האם אתה בטוח שהנך רוצה ל_____?" ^& _
          echo vbcrlf ^& _
          echo "פעולה זו לא ניתנת לביטול!!!", _
          echo 1+16+256+1048576, _
          echo "אישור"^)) > %temp%\prompt_for_confirmation.vbs & cscript %temp%\prompt_for_confirmation.vbs
      if ERRORLEVEL 2 goto END
      
      REM שים את הקוד שלך פה
      
      :END
      del %temp%\prompt_for_confirmation.vbs
      

      2019-11-17 12_42_56-אישור.png

      ⚠ לשמור את הקובץ בקידוד ANSI אחרת העברית יצא משובש.

      נ.ב. אפשר לשנות את הפרמטרים כדי לקבל לחצנים ואייקונים שונים. עיין: https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/msgbox-function

      פורסם בתכנות
      yossiz
      yossiz
    • RE: מדריך: שורת הפקודה

      משתני סביבה

      מה זה "משתנה"?

      משתנה הוא כל דבר מוגדר - בעל ערך משתנה... משתנה יש לו שם, וערך שניתן לשנות.
      למשל, אני רוצה לכתוב פקודה שיקפיץ הודעה שיגיד שלום למישהו. אני יכול לכתוב פקודה שונה לכל אחד שאי פעם ארצה להגיד לו שלום:

      msg yossi שלום Yossi!
      msg yossi שלום Dovid!
      ....
      ....
      

      (הפקודה msg מקבל 2 פרמטרים: שם המשתמש שיראה את ההודעה, ותוכן ההודעה. שם המשתמש במקרה זו הוא yossi והתוכן הוא "שלום פלוני!")

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

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

      למשל אכתוב:

      msg %username% שלום %ploni%!
      

      עכשיו ה-shell יבדוק עם יש משתנה מוגדר בשם "USERNAME", ותמיד יש כזה כי זה משתנה שמוגדר אוטומטי ע"י המערכת, וערכו הוא שם המשתמש הפעיל - בדוגמא שלנו "yossi". ה-shell ימחוק את השם של המשתנה ובמקום זה ימלא את הערך "yossi".

      עכשיו ה-shell יעבור לבדוק עם יש משתנה בשם PLONI. מכיון שאין, נצטרך להגדיר אחד כזה. ב-CMD עושים את זה כך:

      set PLONI=Dovid
      

      אם עכשיו נריץ אתת הפקודה - התוצאה:
      48a83b44-f3e1-4612-93fc-2f8601cef566-image.png

      משתני סביבה

      משתנה שמוגדר כ"משתנה סביבה" הוא משתנה ששייך לתהליך וכל התהליכים הבנים יקבלו אותו בירושה מהאבא. ב-CMD, כל המשתנים הם משתני סביבה. אם תגדיר משתנה, ואז תריץ פקודה - המשתנה יהיה מוגדר גם בתהליך של הפקודה שרצה. ב-bash יש 2 סוגים, משתנה רגיל, ומשתנה סביבה.

      אפשר לראות (וגם לערוך) משתני סביבה של תהליך בתוכנת Process Hacker
      a42ea64d-b4ec-4e46-83a5-9a67dbdd46e6-image.png
      אפשר לראות משתני הסביבה של תהליך CMD ע"י הפקודה set בלי פרמטרים.

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

      פורסם בתוכנה
      yossiz
      yossiz
    • RE: מדריך: שורת הפקודה

      פקודות פנימיים לעומת פקודות חיצוניים

      פקודות מגיעות ב2 טעמים - פנימי וחיצוני.
      פקודה חיצונית הוא תוכנה מהמחשב - לדוגמא אם נכתוב בשורת הפקודה notepad זה יריץ את הכתבן מהנתיבC:\Windows\notepad.exe. אבל יש גם פקודות שממומשות ע"י ה-shell עצמה. נזכיר, ש-shell = סביבה שמתוכה מריצים פקודות. ה-shell הוא גם תוכנה וחלק מהפקודות ממומשות על ידה בלי צורך להריץ תוכנה חיצונית.
      למשל, בכל ה-shellים, יש פקודה cd לשינוי תקייה נוכחי, פקודה זו חייבת להיות פקודה פנימית כי אין דרך לתוכנה חיצונית לשנות את התקייה הנוכחית לתהליך האב שלה. אם נכתוב ב-bash או ב-CMD את הפקודה (הפנימית) help נקבל רשימה של פקודות פנימיות. (ב-CMD, הרשימה כולל ג"כ פקודות חיצוניות, ב-bash לא).

      למה חשוב לדעת אם זה פנימי או חיצוני? שאלה טובה... (ב-bash, העזרה המובנית הוא רק לפקודות פנימיות, ב-CMD כמו ב-CMD המצב יותר מסובך...)

      תווים מיוחדים

      כמו שכבר הזכרנו בפוסט הראשון, הדרך להריץ פקודה הוא - לכתוב את שם הפקודה, ואח"כ פרמטרים. הפרמטרים מועברים לפקודה ע"י ה-shell. בד"כ הפרמטרים לא עוברים עיבוד ע"י ה-shell, אלא מועברים כמו שנכתבו. זה נכון כאשר אין תווים מיוחדים, כאשר יש תווים מיוחדים, תווים אלה יש להם משמעות מיוחדת ל-shell והם לא מועברים לפקודה אלא מתורגמים ע"י ה-shell. לכל shell יש כללים משלו מה נחשב לתו מיוחד, ואיזה פעולה כל תו יעשה. למשל ב-bash נחשב רווח כתו מיוחד, כאשר ה-shell פוגש ברווח, זה אומר לו: כאן סוף פרמטר, התו הבא שאינו רווח מתחיל פרמטר שני. משום כך לא משנה כמה רווחים תשים בין המילים, הפקודה תמיד יקבל את המילה שלפני הרווחים כפרמטר 1, והמילה שאח"כ כפרמטר 2, והרווחים נבלעים ע"י ה-shell.
      ב-CMD כמו ב-CMD המצב יותר מסובך... כל מה שמגיע אחרי הפקודה מועבר לפקודה (כולל כל הרווחים). עכשיו הפקודה עצמה יכול לבחור עם לעבד את הפרמטרים בעצמו (עם הכללים שהוא ירצה לייצר לעצמו) או להעביר את המחרוזת לווינדוס לעבד אותו לפי כללים ידועים.
      רוב הפקודות מעבירים את המחרוזת לעיבוד לפי הכללים הידועים. ובהם תקף הכלל הנ"ל שרווח מפסיק בין הפרמטרים, וגרשיים מחבר.
      תוכנות שנכתבו ב-C (שפת תיכנות ישישה ומכובדת) יעברו עיבוד אוטומטי ע"י ה-CRT (סביבת ההרצה של C - בעיקרון של ווינדוס שכבת תאימות עבור שפת C). (יש גם אפשרות לכתוב ב-C בלי לכלול את ה-CRT, אבל זה שייך ל"תכנות אקסקלוסיבי"...) התוכנה יכולה לבחור בכל זאת להתעלם ולהשתמש במחרוזת המקורית.

      איך מעבירים רווח לפקודה שמשתמש ברווח כתו מיוחד? למשל אם נרצה למחוק קובץ בשם c:\new file1.txt, אם נכתוב כך:

      del c:\new file1.txt
      

      נקבל תשובה

      Could Not Find c:\new
      Could Not Find C:\WINDOWS\system32\file1.txt
      

      כלומר שהקובץ new (פרמטר 1) לא נמצא, והקובץ file1.txt (פרמטר 2) לא נמצא. אנחנו צריכים לכתוב בפרמטר אחד את כל שם הקובץ, אבל שם הקובץ כולל רווח - שמחלק בין פרמטרים? בשביל זה יש עוד תו מיוחד ". הגרשיים מחברים כל מה שבתוכם לפרמטר אחד.

      del "c:\new file.txt"
      

      ד. א. כאשר ניסיתי כמה פקודות לצורך כתיבת הפוסט, מתברר ש-notepad משתמש במחרוזת המקורית, כולל רווחים. למעט רווחים בסוף המחרוזת (שגם מועברים לתוכנה אבל נמחקים ע"י notepad).
      echo משתמש במחרוזת המקורית. כנ"ל cd. כנ"ל start. (לכל אחד ייתכנו הבדלים עדינים בדרך שהם מתרגמים את המחרוזת שהם מקבלים).

      תווים מיוחדים ב-CMD

      כמו שהזכרנו, ב-CMD יש תווים שהתוכנה יכולה לבחור אם הם יחשבו כתווים מיוחדים או לא. יש תווים שהם מיוחדים מיוחדים... והם לא יועברו לתוכנה בשום פנים, ואלו הם:
      < > ^ | & ו-enter. (אולי יש יותר?)
      איך כותבים תווים אלו בלי שיתורגמו באופן מיוחד ע"י CMD ויועברו ישירות לפקודה? כותבים ^ לפני התו: ^| ^< ^> ^^ ^& ו- ^+enter.
      התו ", גם כן מיוחד קצת... כי תו מיוחד אחר (חוץ מ-enter) שמגיע אחרי ה" הפותח ולפני ה" הסוגר כבר לא נחשב כתו מיוחד.
      אני מאמין שיש עוד כמליון ואחד פרטים לגבי טיפול בתווים מיוחדים ב-CMD... מי שמכיר מוזמן לכתוב באשכול התגובות.

      פורסם בתוכנה
      yossiz
      yossiz
    • RE: אשף הפקס נפתח לשניה ומיד נעלם, הבו פתרון

      @shraga אין לי פתרון, אבל כמה רעיונות, (סליחה על הפוסט הארוך, אתה לא חייב לקרוא הכל :))

      מה קורה כאשר תוכנה "נפתח לשבריר שניה ונעלם"? לכאורה יש 1 מתוך 2 אופציות - או שהתוכנה קרסה (בגלל חריגה שאינו מטופל ע"י התוכנה ואז ווינדוס מסיימת את התהליך) או שהתוכנה עצמה הבחינה במשהו חריג וסגרה את עצמה.

      איך נאבחן את הבעיה?

      שלב מינוס א. חיפוש גוגל... אני מאמין שזה כבר עשית 🙂

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

      (יש עוד שלב של נסיונות לפתור את הבעיה בלי להבין אותה, הסרה והתקנה מחדש, איתחול המחשב וכו' וכו' מדובר אחרי שנסית כל זה וזה לא עובד)

      עכשיו נלך מהקל אל הכבד...

      א. יש תכונה מאוד שימושי של תוכנת Everything, שאני משתמש בו כל הזמן, תוסיף עמודה "שינויים אחרונים" וסדר את הרשימה לפי עמודה זו, כך תראה בזמן אמת קבצים שנוצרים או משתנים במערכת. (בעצם אצלי ככה זה מוגדר כל הזמן, וכך יש לי תצוגה חיה של מה שקורה במחשב כל הזמן במחינת יצירת ושנויי קבצים. שמרת קובץ לפני שנייה ושכחת איפה שמרת? תפתח everything וזה יהיה בראש הרשימה. התקנת תוכנה - איפה הקבצים? תפתח Everything. וכן הלאה...)

      0_1546245596369_a60ebf03-eb4e-4b71-9ee9-d48082b2f6f8-image.png

      0_1546245265188_b25a97fc-498e-41d7-9743-8a00eeb7e0f0-image.png

      במקרה של קריסה מסתבר שתראה קבצים שנוצרים בתקיית WER (כלומר, Windows Error Reporting) ואז ייווצר קובץ בשם "Report.wer" שכולל בתוכו פרטי הקריסה.

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

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

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

      שוב פעם, אחרי גוגל, זה הכלי בה"א הידיעה לאיבחון בעיות!!!

      דוגמא קטנה: איפה ברג'יסטרי טמונות הגדרות רזולוצית מסך?
      http://tchumim.com/post/43748
      איך מגיעים לזה? באמצעות Procmon תוך כמה שניות!

      ג. במקרה של חריגה שלא טופלה וא"א לאבחן אותה באמצעות procmon אז מתשמשים ב-debugger. אבל זה לא לבעלי לב חלש...

      פורסם בתוכנה
      yossiz
      yossiz
    • כללים לחיפושי גוגל יעילים

      תגובה: למה אין עדיין פורום מחשבים חרדי מקצועי??

      @nigun אמר בלמה אין עדיין פורום מחשבים חרדי מקצועי??:

      כלל ראשון: שליטה טובה באנגלית חובה

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

      כל אחד מוזמן לכתוב את הכללים שלו...

      פורסם באינטרנט
      yossiz
      yossiz
    • 💡 תכונה לא ידועה בוורד - צבירת קטעים בלוח והדבקה של כולם ביחד

      הנה תכונה בוורד שמאוד לא מוכר.

      מה עושים אם צריך להעתיק מתוך קובץ וורד כמה קטעים לא רצופים?

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

      דוגמא:

      87dd8329-3a78-4958-85e0-ade5be1d538e-image.png

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

      בשביל זה יש את ה-"spike". זה כמו לוח שני (לא קשור ללוח העיקרי) שאפשר להוסיף לו דברים. צורת העבודה כך:

      • ctrl+f3 חותך את הטקסט הנבחר מהמסמך ומוסיפו ל-spike
      • ctrl+shift+f3 מרוקן את ה-spike ומדביקו לתוך המסמך איפה שהסמן נמצא
      • אם רוצים להדביק בלי לרוקן את ה-spike, כותבים SPIKE בתוך המסמך איפה שרוצים להדביק ושוב לוחצים F3. (ביאור הדברים: ה-spike הוא טקסט אוטומטי בתוך וורד, כתיבה של השם של הטקסט האוטומטי ולחיצת F3, מחליף את השם בטקסט האוטומטי)

      מתחת לשטח ה-spike הוא טקסט אוטומטי, אפשר לראות את זה פה (במארגן של חלקים מהירים - אין לי מושג איך הם קוראים לזה בעברית...):
      c62cdf86-96e9-457a-9520-274f560c5be0-image.png

      הוספה:
      זה נמצא גם פה:
      6f85b87c-801e-41bc-9581-d6c0bc738ff3-image.png

      פורסם בטיפים ורעיונות
      yossiz
      yossiz

    Latest posts made by yossiz

    • RE: עזרה ב C# | סינון אוביקט מסוג IList

      @dovid זה linq? זה עובד על Ilist ג"כ או שרק על Ilist<T>‎?

      פורסם בתכנות (אקסקלוסיבי)
      yossiz
      yossiz
    • RE: [בקשה] תובנות על Angularjs

      @nigun אמר ב[בקשה] תובנות על Angularjs:

      הנה עוד בלוג שלו

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

      פורסם בתכנות (אקסקלוסיבי)
      yossiz
      yossiz
    • RE: [בקשה] תובנות על Angularjs

      @nigun תודה רבה! יש שם חומר מעשיר, וזה לא שטחי בכלל (לטעמי), הכותב מתאר את עצמו כ-'Engineer in the Angular team at Google'.
      הנה רשימת הפוסטים: https://blog.mgechev.com/post. (רובם לא על אנגולרJS).

      פורסם בתכנות (אקסקלוסיבי)
      yossiz
      yossiz
    • RE: פוסטים שלא נקראו בצבע אחר

      @dovid, האם אפשר להוסיף פה תיקון קטן בלי לפתוח נושא חדש?

      html[data-dir=rtl] .category>ul>li .select .fa-check {
          right: 0;
          left: auto;
      }
      

      מתקן את ה-✔ שיופיע במקום הנכון:
      aa0d0052-4849-4146-b255-b45a34c52b84-image.png

      פורסם ברשימת הצעות
      yossiz
      yossiz
    • RE: עזרה בREGEX

      'א בעלבתישע גאון...'
      האמת היא שלא כל כך הבנתי איפה הגאונות ואיפה הבעלבתישקייט...
      טוב, לא משנה. נראה אם יש למישהו אחר פתרון למדני 🙂
      (החוצניקים תמיד טוענים שהישראלים הם פחות למדנים... בא נראה)

      פורסם בתכנות (אקסקלוסיבי)
      yossiz
      yossiz
    • RE: עזרה בREGEX
      <a[^>]*>http.*<\/a>
      
      פורסם בתכנות (אקסקלוסיבי)
      yossiz
      yossiz
    • RE: יש אימולטור כמו בלוסטאקס שלא מכביד על המחשב ועובד בנטפרי?

      יש לי מעבד i5 דור שביעי, כרטיס מסך Nvidia GEFORCE 920MX (זה לא חזק במיוחד), 16GB RAM, ו-SSD.
      אף פעם לא היו לי בעיות עם אמולטורים. כנראה שהמחשב שלי מספיק חזק. אבל אני לא משתמש באמולטור בקביעות.

      @הבוס-הגדול אמר ביש אימולטור כמו בלוסטאקס שלא מכביד על המחשב ועובד בנטפרי?:

      אבל לאורך זמן יכול לשחוק אותו

      אין דבר כזה.

      פורסם בתוכנה
      yossiz
      yossiz
    • RE: איך אני מייצר פונקציה בגלובל שה-this שלה יהיה ה-this של המופע שמפעיל אותו?

      @יוסף-בן-שמעון צודק לגמרי. הייתי צריך לכתוב כך:

      const thisObj = this;
      callToFunc(function() { return thisObj.callback() })‎
      
      פורסם בתכנות (אקסקלוסיבי)
      yossiz
      yossiz
    • RE: איך אני מייצר פונקציה בגלובל שה-this שלה יהיה ה-this של המופע שמפעיל אותו?

      @יוסף-בן-שמעון אמר באיך אני מייצר פונקציה בגלובל שה-this שלה יהיה ה-this של המופע שמפעיל אותו?:

      אם זו הבעיה שלך, הפיתרון הוא להעביר את הקולבק כך:
      ‎callToFunc(() => this.callback())‎

      או כך: callToFunc(function() { return this.callback() })‎
      (אני רק מבהיר שזה לא קשור לפונקציות חצים.)

      פורסם בתכנות (אקסקלוסיבי)
      yossiz
      yossiz