অনুস্মারক - \ r \ n বা \ n \ r?


390

আমি শুধু তাদের মনে করতে পারি না। সুতরাং, পুরানো ফ্যাশনযুক্ত ASCII লাইনগুলি সঠিকভাবে শেষ করার সঠিক উপায় কী?


11
আপনি যদি এটি করেন তবে আপনার ফাইলগুলি বাইনারি মোডে খোলার বিষয়টি নিশ্চিত করুন । অন্যথায় স্ট্যান্ডার্ড সি / সি ++ ফাইল স্ট্রিমগুলি "\ n" (পাঠ্য ফাইলগুলির জন্য (ডিফল্ট)) লাইন সিকোয়েন্সের নির্দিষ্ট প্রান্তে (ELS) একটি প্ল্যাটফর্মে রূপান্তরিত করে। সুতরাং উইন্ডোজের "\ r \ n" শারীরিক ডিস্কে "\ r \ r \ n" তে রূপান্তরিত হবে। দ্রষ্টব্য: আপনি যদি কেবল ফাইলটি পড়ার জন্য C / C ++ ব্যবহার করেন তবে ফাইলটি পড়ার সময় ELS "" to n "এ রূপান্তরিত হওয়ায় আপনি খেয়াল করতে পারবেন না।
মার্টিন ইয়র্ক

@ মার্টিন - আমি। নেট-তে আছি এবং "\ r \ n" দিয়ে ফাইল.অ্যাপেন্ডএলটেক্সট ব্যবহার করছি, এবং আমি কেবল একটি ফাইল খতিয়ে দেখেছি, এবং শেষে কোনও \ r সদৃশ নেই লাইন. ম্যাজিক?
ড্যানিয়েল মোমন্ডর

@ ড্যানিয়েল: আমার আরও সুনির্দিষ্ট হওয়া উচিত ছিল। সি / সি ++ স্ট্রিম। যখন কোনও ফাইলের সাথে যুক্ত হয় এবং পাঠ্য মোডে খোলা থাকে । আপনি কীভাবে ফাইলটি দেখেন তার উপরও এটি নির্ভর করে (একটি হেক্সিডিটার ব্যবহার করুন)।
মার্টিন ইয়র্ক

@ মার্টিন - হেক্স মোডে ব্যবহৃত পিএসপ্যাড ...
ড্যানিয়েল মোমন্ডর

1
প্রাচীন কীবোর্ডগুলিতে, এন্টার কীটিকে রিটার্ন কী বলা হত। সুতরাং রিটার্নটি প্রথমে এসেছিল, তারপরে লাইনফিড তৈরি হয়েছিল। আপনার যখন খুব বেশি ইতিহাস থাকে তখন এটি সমস্তই সুস্পষ্ট।
মার্ক

উত্তর:


1084

মনে রাখতে আমি ' আর এটুর এন ' শব্দটি ব্যবহার করব , এন এন এর আগে r আসবে।


116
এবং এটি মনে রাখার জন্য যে শব্দটি ব্যবহার করা হবে তা প্রত্যাবর্তন , মনে রাখবেন \ r হ'ল গাড়ীর ফেরত । মনে রাখবেন না যে "রিটার্ন" হ'ল ম্যাক কীবোর্ডগুলির কীটির নাম, নাহলে আপনি পরে পিসি কীবোর্ডটি দেখতে পারেন, "এন্টার", কীটি দেখুন এবং চিঠিটির আদেশটি ভুল পেতে পারেন!
রব কেনেডি

3
@ ডেভিড তবে আমি ভাবছিলাম যে সেই প্রভাবটি কী \n\rএবং \r\nএকই, তারা কি একই প্রভাব ফেলবে না? তুমি কি পার্থক্যটা বলতে পারো?
মিঃ আনুবিস

7
@ মিঃ আনুবিসের যদি আপনার নির্দিষ্ট ডট ম্যাট্রিক্স প্রিন্টার থাকে তবে কোনও পার্থক্য হওয়া উচিত না, কারণ আদেশের ক্রমটি গুরুত্বপূর্ণ হওয়া উচিত নয়। তবে কিছু মুদ্রকগুলিতে আপনি অতিরিক্ত খালি লাইন, বা কোনও লাইন অগ্রগতি পাবেন না। এবং উপরে যা যা বলা হয়েছে তা পাঠ্য সম্পাদকদের ক্ষেত্রে প্রযোজ্য - তারা বিভ্রান্ত হবে, পাঠ্য স্ট্রিম ক্লাসগুলি অসুস্থ হয়ে পড়বে ইত্যাদি so অর্ডার IS গুরুত্বপূর্ণ। :)
ড্যানিয়েল মোমন্ডর

12
@ ড্যানিয়েলমোমন্ডর বিকল্পভাবে, আপনি কেবল মনে রাখতে পারেন যে অর্ডারটি ইমপোরটাএনটি। অথবা এটি আপনি যখন এসওকে জিজ্ঞাসা করেছিলেন তখন কেউ আপনাকে একটি রেমিন্ডার দিয়েছে, যা আপনি পরে ভুলে গিয়েছিলেন। বা আপনি নিজের নামটি একটি অনুস্মারক হিসাবে ব্যবহার করতে পারবেন না কারণ সেখানে r এবং n এর
ক্রমটি

5
@ রব কেনেডি হাহা আপনি জানেন আমি এখানে এসেছি এবং ফিরে আসার বিষয়ে পড়লাম এবং ভেবেছিলাম "দুর্দান্ত!" তারপরে আমি আপনার মন্তব্য পড়েছি। এখন যতবার আমি মনে করতে পারি না কোন কীটি আমার দিকে নেওয়া উচিত নয় - আমি আমার "এন্টার" কীটি দেখি এবং আমার মনে হয় "এখানে খুব খারাপ কিছু আছে" ... হাহাহা ভাবতে না পেরে!
ওয়েইন উরোদা 20'13

53

আপনি যদি সি # ব্যবহার করছেন তবে আপনার ব্যবহার করা উচিত Environment.NewLine, যা এমএসডিএন অনুসারে এটি হ'ল:

নন-ইউনিক্স প্ল্যাটফর্মগুলির জন্য "\ r \ n", অথবা ইউনিক্স প্ল্যাটফর্মগুলির জন্য "\ n" ধারণকারী একটি স্ট্রিং।


46
আসলে এই ধরণের উপর নির্ভর করে আপনি কী করছেন। আপনি যদি স্রেফ পাঠ্যটি কনসোল বা স্থানীয় ব্যবহারের জন্য কোনও ফাইলে আউটপুট করে থাকেন তবে Environment.NewLineতা ঠিক। তবে, আপনি যদি একটি ভাল সংজ্ঞায়িত ফর্ম্যাটে জিনিস লিখছেন তবে ফর্ম্যাটটি নিউলাইনটিকেও সংজ্ঞায়িত করতে পারে। উদাহরণস্বরূপ, এইচটিটিপি প্রোটোকলটি জানিয়েছে যে আপনাকে অবশ্যই\r\n প্ল্যাটফর্ম নির্বিশেষে শিরোলেখ ইত্যাদির জন্য লাইন টার্মিনেটর হিসাবে ব্যবহার করতে হবে
ম্যাটি ভির্ককুনেন

3
হ্যাঁ, এটি সত্যই খারাপ পরামর্শ।
IvanP

এজন্য আপনাকে আপনার ওয়েব বার্তাগুলি থেকে বাঁচতে হবে এবং ser r \ n (উইন্ডোজ), \ r (ম্যাক), \ n (লিনাক্স) ওয়েবসার্ভারে properly r \ n হিসাবে সঠিকভাবে প্রেরণ করা যাচাই করতে ইউনিট পরীক্ষাগুলি তৈরি করতে হবে।
তমুসজেরোয়েস 23:48

37

নতুন লাইন আপনার ওএসের উপর নির্ভর করে:

DOS & Windows: \r\n 0D0A (hex), 13,10 (decimal)
Unix & Mac OS X: \n, 0A, 10
Macintosh (OS 9): \r, 0D, 13

আরও বিশদ এখানে: https://ccrma.stanford.edu/~craig/utility/flip/

সন্দেহ হলে, কোনও ফাইল কীভাবে তার নতুন লাইনের এনকোড করে তা দেখতে কোনও ফ্রিওয়্যার হেক্স ভিউয়ার / সম্পাদক ব্যবহার করুন।

আমার জন্য, আমি আমাকে মনে রাখতে সাহায্যের জন্য নিম্নলিখিত গাইড ব্যবহার করি: 0D0A = \ r \ n = CR, LF = ca rr iage r eturn, li n e feed


7
আশ্চর্যের ব্যাপার যে, আমি এদের কে জানে এক নই 0D0Aহৃদয় দ্বারা, কিন্তু এখনও বিভ্রান্ত \rএবং \n
নাইয়ারগডস

1
অথবা, আমার মনে আছে \ r হ'ল ক্যারেজ রিটার্ন এবং \ n লাইন ফিড ... এটি কেবল আমি তাদের
ক্রমটি

20

ক্রমটি সিআর (ক্যারেজ রিটার্ন) - এলএফ (লাইন ফিড)। ডট ম্যাট্রিক্স প্রিন্টার মনে আছে? যথাযথভাবে। সুতরাং - সঠিক ক্রমটি \ r \ n


আমি মনে করি এটি সর্বাধিক যৌক্তিক উত্তর
ডেভিড স্নাবেল-কাউন্ট

12
LF + CR মুদ্রকগুলিতে একই সিআর + এলএফ করত।
ইকগামি

10
আমি একমত নই, @ ডেভিড। বিন্দু-ম্যাট্রিক্স প্রিন্টারগুলি (বা এই ক্ষেত্রে টাইপরাইটারগুলির সম্পর্কে চিন্তাভাবনা, যেহেতু তারা সেই গাড়ীর সাথে ফিরে আসার কারণ) যথেষ্ট নয়। তারা কীভাবে কাজ করে সে সম্পর্কে কেবলমাত্র প্রাথমিক তথ্যের সাথে, আমরা এই কাগজটি লাইনের শুরুতে ফিরে যাওয়ার আগে বা পরে অগ্রসর করি কিনা তা বিবেচনার কোনও কারণ নেই। \ R \ n এবং \ n Both r উভয়ই কাগজটিকে একই অবস্থানে রেখেছিল।
রব কেনেডি

@ikegami বেশিরভাগ মুদ্রকগুলিতে, তাদের সবার জন্য নয়। তাদের সেই আচরণটি কনফিগার করতে ডিআইপি সুইচও ছিল। :)
ড্যানিয়েল মোমন্ডর

5
ক্যারেজ রিটার্নের পরে লাইন ফিড লাগানোর একটি কারণ হ'ল প্রয়োজনীয় সময়ের মোট পরিমাণ হ্রাস করে - যখন মাথা কাগজের বাম প্রান্তে ফিরে আসছে, ফলকটি একটি লাইন সূচক করতে পারে। লম্বা অপারেশনটি প্রথমে শুরু হয়, সুতরাং পুরো অপারেশনটি কার্যকর করতে যে সময়টিকে আরও বেশি সময় নেয় তার সম্পূর্ণ হয়। সেই সময়ের মতো কারণে আমরা প্রচুর কাজ করেছি; ১১০ বাউডে কয়েকশ লাইনের অপেক্ষার কল্পনা করুন ...
জেরি অ্যান্ড্রুজ

8

যে কোনও। নেট ল্যাঙ্গুয়েজে, Environment.NewLineপছন্দনীয় হবে।


ধ্রুব স্ট্রিংয়ের জন্য কাজ করে না। যখন প্রয়োজন হয়, ধ্রুবকটি ব্যবহার না করে এবং পরিবর্তে স্ট্যাটিক স্ট্রিং ব্যবহার না করা ভাল;)
তমুসজেরোয়

5

ম্যানুয়ালি এটি করার ক্ষেত্রে সাবধানতা অবলম্বন করুন।
আসলে আমি এটিকে একেবারেই না করার পরামর্শ দেব ।

বাস্তবে আমরা লাইন টার্মিনেশন ক্রম এলটিএসের কথা বলছি যা প্ল্যাটফর্মের জন্য নির্দিষ্ট।

আপনি যদি পাঠ্য মোডে কোনও ফাইল খুলেন (যেমন বাইনারি নয়) তবে স্ট্রিমগুলি আপনার প্ল্যাটফর্মের জন্য "\ n" কে সঠিক এলটিএসে রূপান্তর করবে। তারপরে আপনি যখন ফাইলটি পড়েন তখন এলটিএসকে "" to n "এ রূপান্তর করুন।

ফলস্বরূপ আপনি যদি উইন্ডোজ ফাইলে "\ r \ n" মুদ্রণ করেন তবে আপনি দৈহিক ফাইলে ক্রম "\ r \ r" n "পাবেন (একটি হেক্স সম্পাদক সম্পাদনা করে দেখুন)।

প্ল্যাটফর্মগুলির মধ্যে ফাইল স্থানান্তর করার ক্ষেত্রে অবশ্যই এটি আসল ব্যথা।

এখন আপনি যদি কোনও নেটওয়ার্ক স্ট্রিমে লিখছেন তবে আমি নিজেই এটি করতাম (বেশিরভাগ নেটওয়ার্ক প্রোটোকল এটিকে বিশেষভাবে কল করে)) তবে আমি নিশ্চিত করব যে স্ট্রিমটি কোনও ব্যাখ্যা করছে না (সুতরাং বাইনারি মোড উপযুক্ত ছিল)।


4

\r\n উইন্ডোজ ঠিক জরিমানা করতে হবে।


\nনোটপ্যাডের সর্বশেষতম সংস্করণ সহ উইন্ডোতেও একটি সিঙ্গেল জরিমানা করে।
আন্দ্রে কারন

আমি মনে করি আধুনিক সম্পাদকরা লাইন শেষগুলি সনাক্ত করবে, কারণ বিভিন্ন ওএস বিভিন্ন প্রান্ত ব্যবহার করে।
ডেভিড স্নাবেল-কাউন্ট

1
প্রকৃতপক্ষে নয়: আপনি যদি উইন্ডোতে কোনও ফাইল (স্ট্যান্ডার্ড সি / সি ++ ফাইলটি পাঠ্য মোডে খোলা হয়) এ মুদ্রণ করেন তবে দৈহিক ফাইলটিতে "\ r \ r \ n" থাকবে (এটি একটি হেক্স সম্পাদক হিসাবে পরীক্ষা করুন)। আপনি যখন এটি আবার পড়েন তখন "\ r \ n" আবার একক "\ n" তে রূপান্তরিত হয়।
মার্টিন ইয়র্ক

2
আসলে, @ ডেভিডকন্ট, আমি সবেমাত্র চেষ্টা করেছি Win n এবং এটি উইন 8-এ নোটপ্যাড নিয়ে কাজ করে না।
ফিলিপ

4

উইকিপিডিয়া থেকে (আপনি নিবন্ধে আপনার ওএসের জন্য কোনটি সঠিক তা পড়তে পারেন):

ASCII বা একটি সামঞ্জস্যপূর্ণ অক্ষর সেট উপর ভিত্তি করে সিস্টেমগুলি এলএফ (লাইন ফিড, '\ n', 0x0A, দশমিক 10) বা সিআর (ক্যারিজ রিটার্ন, '\ r', 0x0D, 13 দশমিক) পৃথকভাবে ব্যবহার করে, বা সিআর অনুসরণ করবে এলএফ (সিআর + এলএফ, '\ r \ n', 0x0D0A)।


3

\r\n

বলার অপেক্ষা রাখে না যে আমি এটি মনে করি কারণ এটি আমার ব্যবহৃত টাইপরাইটারের বিপরীত
আচ্ছা এটি যদি স্বাভাবিক হয় তবে আমার এটি মনে রাখার দরকার ছিল না ...:-)

উইকিপিডিয়া থেকে টাইপরাইটার * উইকিপিডিয়া থেকে চিত্র

টাইপ রাইটারে আপনি যখন রেখার অঙ্কটি শেষ করেন আপনি ক্যারেজ রিটার্ন লিভারটি ব্যবহার করেন , তার আগে ড্রামটি, নতুনলাইনটি রোল করে দেয় এবং আপনাকে নিজেই গাড়ীর রিটার্ন পরিচালনা করতে দেয় ।

আপনি এই রেকর্ডটি থেকে শুরুতে কাগজ খাওয়ানোর শুরুর শব্দটি শুনতে পারেন এবং শেষ থেকে প্রায় -1: 03 সেকেন্ডে, ড্রামের লাইন শব্দের শেষের জন্য বেল সতর্কতার পরে এবং পরে একটি গাড়ি ফেরত।


2

আপনি যদি সি # ব্যবহার করছেন তবে কেন ব্যবহার করছেন না Environment.NewLine? (আমি ধরে নিচ্ছি আপনি কিছু ফাইল রাইটার অবজেক্ট ব্যবহার করেছেন ... কেবল এটি পাস করুন Environment.NewLineএবং এটি সঠিক টার্মিনেটরগুলি পরিচালনা করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.