ABA


"|שאלה| מה פירוש התו 'r\' ?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15653 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15653
זולי 
חבר מתאריך 10.8.04
4426 הודעות
   17:22   04.01.10   
אל הפורום  
  |שאלה| מה פירוש התו 'r\' ?  
 
   ראיתי את זה בקוד ולא הבנתי מה הולך שם...
הוא הופיע פעם אחת פשוט כ'r\' ופעם אחרת ראיתי
'n\r\'


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  ירידת שורה עם אנטר. שמשון פישטונה 04.01.10 17:33 1
     במה הוא נבדל מ'n\'? זולי  04.01.10 17:33 2
         אם אני לא טועה, שמשון פישטונה 04.01.10 17:39 3
             בנוסף ל\n? זולי  04.01.10 17:43 4
                 כן יש מקרים שמשון פישטונה 04.01.10 17:44 5
                     הממ הזוי משהו כי מימוש HEADER של HTTP כך שאני לא מבין זולי  04.01.10 17:45 7
                         לא תמיד זה קשור להדפסה, שמשון פישטונה 04.01.10 17:56 10
         זו ירידת שורה בלי נסיגה לאחור ronen333  04.01.10 17:45 6
             נסיגה לאחור? זולי  04.01.10 17:46 8
                 הטקסט הבא יתחיל צמוד להתחלה (כלומר בלי טאבים) Mr Andersson 04.01.10 17:52 9
                     אמממ ההפך הוא הנכון. ronen333  04.01.10 18:37 11
  נאמרו פה מלא שטויות TTAsnn 04.01.10 20:31 12
     OK תודה. אגב מה פירוש הcarriage? זולי  04.01.10 22:11 14
         הסבר TTAsnn 05.01.10 18:17 20
  איזה אשכול הזוי... מה שTTAsnn אמר נכון DLN 04.01.10 22:09 13
  לא קראתי תגובות לפני, אבל בלינוקסים איחדו את \r ו-\n ldan192  05.01.10 00:55 15
     בווינדוס זה מתנהג בדיוק כמו שאמרתי, שמשון פישטונה 05.01.10 00:58 16
         מה זה כותב? אנחנו מדברים על קבצים בינאריים, כן? ldan192  05.01.10 01:05 17
             לא בדקתי בNOTEPAD++ שמשון פישטונה 05.01.10 13:34 18
                 ברור, כי תוכנות עיליות יכולות להתייחס לתווי ה-Ascii איך ldan192  05.01.10 15:14 19

       
שמשון פישטונה

   17:33   04.01.10   
אל הפורום  
  1. ירידת שורה עם אנטר.  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
זולי 
חבר מתאריך 10.8.04
4426 הודעות
   17:33   04.01.10   
אל הפורום  
  2. במה הוא נבדל מ'n\'?  
בתגובה להודעה מספר 1
 
  


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

   17:39   04.01.10   
אל הפורום  
  3. אם אני לא טועה,  
בתגובה להודעה מספר 2
 
   נניח ותכתוב לקובץ ותרד שורות עם \n אז אתה לא תראה את הירידות שורה שלך רק עד שתדפיס את הטקסט בתוכנה שלך, אם תשתמש ב\r אז הירידות שורה יהיו נראות לעין בקובץ עצמו אבל לא בהדפסה של המחרוזת.

http://en.wikipedia.org/wiki/Newline#In_programming_languages


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
זולי 
חבר מתאריך 10.8.04
4426 הודעות
   17:43   04.01.10   
אל הפורום  
  4. בנוסף ל\n?  
בתגובה להודעה מספר 3
 
   כי נגיד יש לי מקום שכתוב בו "r\n\"


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

   17:44   04.01.10   
אל הפורום  
  5. כן יש מקרים  
בתגובה להודעה מספר 4
 
   שצריך גם ירידת שורה אמיתית בטקסט עצמו(כמו ללחוץ Enter), וגם ירידת שורה בהדפסה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
זולי 
חבר מתאריך 10.8.04
4426 הודעות
   17:45   04.01.10   
אל הפורום  
  7. הממ הזוי משהו כי מימוש HEADER של HTTP כך שאני לא מבין  
בתגובה להודעה מספר 5
 
   איפה הוא יודפס למסך באיזשהו שלב...


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

   17:56   04.01.10   
אל הפורום  
  10. לא תמיד זה קשור להדפסה,  
בתגובה להודעה מספר 7
 
   לפעמים המחרוזת נכתבת בצורה מסויימת כי רק ככה הparser בצד השני יידע לעבד אותה.

ובמקרה הזה זה בדיוק ככה, יש דרך ספציפית לכתוב Http Headers.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   17:45   04.01.10   
אל הפורום  
  6. זו ירידת שורה בלי נסיגה לאחור  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
זולי 
חבר מתאריך 10.8.04
4426 הודעות
   17:46   04.01.10   
אל הפורום  
  8. נסיגה לאחור?  
בתגובה להודעה מספר 6
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Mr Andersson
חבר מתאריך 19.3.02
6234 הודעות, 1 פידבק
   17:52   04.01.10   
אל הפורום  
  9. הטקסט הבא יתחיל צמוד להתחלה (כלומר בלי טאבים)  
בתגובה להודעה מספר 8
 
   אם אתה רוצה להוסיף עוד טאב אז התו הוא \t

http://i60.tinypic.com/35aowg8.jpg


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   18:37   04.01.10   
אל הפורום  
  11. אמממ ההפך הוא הנכון.  
בתגובה להודעה מספר 9
 
   זה ירד שורה מתחת בלי ללכת להתחלת השורה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TTAsnn

   20:31   04.01.10   
אל הפורום  
  12. נאמרו פה מלא שטויות  
בתגובה להודעה מספר 0
 
   http://en.wikipedia.org/wiki/%5Cr
תשובה הכי טובה מן הסתם...
ד"א:
\r = carriage return
\n = line feed
בכל מקרה, בלינוקס, שורה חדשה זה \n ב mac הישנים זה \r במאק החדשים זה כמו בלינוקס \n בווינדוס מסיבה לא מובנת בכלל (כנראה בגלל פיגור שכלי) \r\n

בעקרון הספרייה הסטנדרטית של C מחוייבת לתרגם את \n אוטומטית לסימן המתאים בפונקציות הפלט ובפונקציות הקלט הסטנדרטיות.

זה בעקרון מה ש \r אומר.

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

לא יודע למה \r לבד שימושי, אבל \r\n שימושי לדברים כמו http, או בשביל להכריח בלינוקס או במאק לכתוב \r\n כמו שווינדוס בטיפשותו דורש.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
זולי 
חבר מתאריך 10.8.04
4426 הודעות
   22:11   04.01.10   
אל הפורום  
  14. OK תודה. אגב מה פירוש הcarriage?  
בתגובה להודעה מספר 12
 
   ואתה אומר שאין קשר ל'נסיגה לאחור'?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TTAsnn

   18:17   05.01.10   
אל הפורום  
  20. הסבר  
בתגובה להודעה מספר 14
 
   נתחיל מהסיבה שקוראים לזה carriage return + line feed
הסיבות, מן הסתם, זה מכונת כתיבה, שבה ירידת שורה כללה את החזרת הגוש הזה אחורה וירידת שורה.

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   22:09   04.01.10   
אל הפורום  
  13. איזה אשכול הזוי... מה שTTAsnn אמר נכון  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   00:55   05.01.10   
אל הפורום  
  15. לא קראתי תגובות לפני, אבל בלינוקסים איחדו את \r ו-\n  
בתגובה להודעה מספר 0
 
בווינדוז - לא.

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

זה חשוב לבדוק כשאתה מעביר קבצים כבינאריים ולא כ-ASCII מ-Windows ל-Linux.


בברכה,
עידן


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

   00:58   05.01.10   
אל הפורום  
  16. בווינדוס זה מתנהג בדיוק כמו שאמרתי,  
בתגובה להודעה מספר 15
 
   כשאני כותב לקובץ ורוצה שהירידות שורה שם יהיו נראות לעין, רק \r עובד.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   01:05   05.01.10   
אל הפורום  
  17. מה זה כותב? אנחנו מדברים על קבצים בינאריים, כן?  
בתגובה להודעה מספר 16
 
אתה לא יכול לומר שב-notepad++ זה עובד כי ב-notepad++ גם \r וגם \n מורידים שורה.
אבל אם תנסה לשמור קובץ בינארי רק עם \n אתה תראה שב-notepad הוא לא ירד לך שורה.
רק עם \r זה לא אמור לעשות דבר.


בברכה,
עידן


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

   13:34   05.01.10   
אל הפורום  
  18. לא בדקתי בNOTEPAD++  
בתגובה להודעה מספר 17
 
   אבל זה נראה כאילו ההתנהגות בכול תוכנה שונה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   15:14   05.01.10   
אל הפורום  
  19. ברור, כי תוכנות עיליות יכולות להתייחס לתווי ה-Ascii איך  
בתגובה להודעה מספר 18
 
שהן רוצות.
במיוחד בשביל האשכול, העלתי קובץ שהכנתי.

הוא מהמבנה של ===name: comm===
כאשר name זו הפקודה שנכתבה ו-comm זו הפקודה שמייד אחריה.

אתה תראה שב-notepad++ יהיו ירידות שורות עבור כולן.
ב-notepad רק ה-\r\n תהווה ירידת שורה.
ב-wordpad רק מה שהוא או \n או \r\n יהווה ירידת שורה.


אבל, ככה לא בודקים. בודקים ב-console של הוינדוז עליו גם כל ה-GUI של מערכת ההפעלה מסתמך.
תרשום type data.txt ותראה שזהו הפלט:
=== r:
===\n:
===
===\r\n:
===

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


בנוגע למה יותר טוב ומה פחות טוב? זו שטות גמורה.
לדעתי, המימוש הרבה יותר קל עבור שפות עיליות במיוחד (לא C/++C) כשיש \n ו-\r מופרדים, ולכן דווקא הקונספט של ווינדוז (המסתמך על ה-UNIX ולא השתנה במהלך השנים כמו בלינוקס) - הוא היותר נכון.


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net