الفرق بين المراجعتين ل"Ruby/Encoding/Converter/insert output"

من موسوعة حسوب
< Ruby‏ | Encoding‏ | Converter
اذهب إلى التنقل اذهب إلى البحث
ط
ط
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 1: سطر 1:
 
{{DISPLAYTITLE:التابع <code>Encoding::Converter.insert_output</code> في روبي}}
 
{{DISPLAYTITLE:التابع <code>Encoding::Converter.insert_output</code> في روبي}}
 
 
يضيف التّابع <code>insert_output</code> سلسلةً نصيّةً إلى محوِّل التّرميز، إذ سيُحول ترميز هذه السلسلة إلى ترميز الوجهة نفسه وتُوضع في نهاية مخرجات عملية التحويل.
 
يضيف التّابع <code>insert_output</code> سلسلةً نصيّةً إلى محوِّل التّرميز، إذ سيُحول ترميز هذه السلسلة إلى ترميز الوجهة نفسه وتُوضع في نهاية مخرجات عملية التحويل.
  
سطر 6: سطر 5:
  
 
لا يجب استخدام هذا التّابع إلا عند حدوث أخطاء في عملية التحويل.
 
لا يجب استخدام هذا التّابع إلا عند حدوث أخطاء في عملية التحويل.
 
+
==البنية العامة==
== البنية العامة ==
 
 
<syntaxhighlight lang="ruby">
 
<syntaxhighlight lang="ruby">
 
insert_output(string) → nil
 
insert_output(string) → nil
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
==المعاملات==
== المعاملات ==
+
===<code>string</code>===
 
 
=== <code>string</code> ===
 
 
السلسلة النصيّة المراد إدخالها في محوَّل الترميز.
 
السلسلة النصيّة المراد إدخالها في محوَّل الترميز.
 +
==القيم المعادة==
 +
تعاد القيمة <code>nil</code> بعد إضافة السلسلة النصية <code>string</code> إلى محوِّل التّرميز.
  
== القيم المعادة ==
+
==أمثلة==
 
 
== أمثلة ==
 
 
مثالٌ عن استخدام التابع <code>insert_output</code>:<syntaxhighlight lang="ruby">
 
مثالٌ عن استخدام التابع <code>insert_output</code>:<syntaxhighlight lang="ruby">
 
ec = Encoding::Converter.new("utf-8", "iso-8859-1")
 
ec = Encoding::Converter.new("utf-8", "iso-8859-1")
 
 
src = "HIRAGANA LETTER A is \u{3042}."
 
src = "HIRAGANA LETTER A is \u{3042}."
 
 
dst = ""
 
dst = ""
 
+
p ec.primitive_convert(src, dst)   #=> :undefined_conversion
p ec.primitive_convert(src, dst)    #=> :undefined_conversion
+
puts "[#{dst.dump}, #{src.dump}]"   #=> ["HIRAGANA LETTER A is ", "."]
 
 
puts "[#{dst.dump}, #{src.dump}]"   #=> ["HIRAGANA LETTER A is ", "."]
 
 
 
 
ec.insert_output("<err>")
 
ec.insert_output("<err>")
 
+
p ec.primitive_convert(src, dst)   #=> :finished
p ec.primitive_convert(src, dst)    #=> :finished
+
puts "[#{dst.dump}, #{src.dump}]"   #=> ["HIRAGANA LETTER A is <err>.", ""]
 
 
puts "[#{dst.dump}, #{src.dump}]"   #=> ["HIRAGANA LETTER A is <err>.", ""]
 
  
 
ec = Encoding::Converter.new("utf-8", "iso-2022-jp")
 
ec = Encoding::Converter.new("utf-8", "iso-2022-jp")
 
 
src = "\u{306F 3041 3068 2661 3002}" # U+2661 is not representable in iso-2022-jp
 
src = "\u{306F 3041 3068 2661 3002}" # U+2661 is not representable in iso-2022-jp
 
 
dst = ""
 
dst = ""
 
+
p ec.primitive_convert(src, dst)   #=> :undefined_conversion
p ec.primitive_convert(src, dst)    #=> :undefined_conversion
+
puts "[#{dst.dump}, #{src.dump}]"   #=> ["\e$B$O$!$H".force_encoding("ISO-2022-JP"), "\xE3\x80\x82"]
 
+
ec.insert_output "?"               # state change required to output "?".
puts "[#{dst.dump}, #{src.dump}]"   #=> ["\e$B$O$!$H".force_encoding("ISO-2022-JP"), "\xE3\x80\x82"]
+
p ec.primitive_convert(src, dst)   #=> :finished
 
+
puts "[#{dst.dump}, #{src.dump}]"   #=> ["\e$B$O$!$H\e(B?\e$B!#\e(B".force_encoding("ISO-2022-JP"), ""]
ec.insert_output "?"                # state change required to output "?".
 
 
 
p ec.primitive_convert(src, dst)    #=> :finished
 
 
 
puts "[#{dst.dump}, #{src.dump}]"   #=> ["\e$B$O$!$H\e(B?\e$B!#\e(B".force_encoding("ISO-2022-JP"), ""]
 
 
 
  
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
==انظر أيضًا==
== انظر أيضًا ==
 
 
*التّابع <code>[[Ruby/Encoding/Converter/asciicompat encoding|asciicompat_encoding]]</code>: يُعيد التّرميز المتوافق مع <code>ASCII</code> المقابل للترميز المعطى.
 
*التّابع <code>[[Ruby/Encoding/Converter/asciicompat encoding|asciicompat_encoding]]</code>: يُعيد التّرميز المتوافق مع <code>ASCII</code> المقابل للترميز المعطى.
*التّابع <code>[[Ruby/Encoding/Converter/destination encoding|destination_encoding]]</code>: يُعيد التّرميز الوجهة على شكل كائنٍ من الصنف <code>Encoding</code>.
+
*التّابع <code>[[Ruby/Encoding/Converter/destination encoding|destination_encoding]]</code>: يُعيد التّرميز الوجهة على شكل كائنٍ من الصنف [[Ruby/Encoding|<code>Encoding</code>]].
*التّابع <code>[[Ruby/Encoding/Converter/source encoding|source_encoding]]</code>: يُعيد الترميز المصدر على شكل كائن من الصنف <code>Encoding</code>.
+
*التّابع <code>[[Ruby/Encoding/Converter/source encoding|source_encoding]]</code>: يُعيد الترميز المصدر على شكل كائن من الصنف <code>[[Ruby/Encoding|Encoding]]</code>.
 
*التّابع <code>[[Ruby/Encoding/Converter/primitive convert|primitive_convert]]</code>: يحوّل ترميز جميع المحتويات المخزَّنة مؤقتًا (buffer) في مخزن معين أو مجال محدد منها ثم يضع الناتج في مخزَّن محدَّد.
 
*التّابع <code>[[Ruby/Encoding/Converter/primitive convert|primitive_convert]]</code>: يحوّل ترميز جميع المحتويات المخزَّنة مؤقتًا (buffer) في مخزن معين أو مجال محدد منها ثم يضع الناتج في مخزَّن محدَّد.
*التّابع <code>[[Ruby/Encoding/Converter/insert output|insert_output]]</code>: يضيف سلسلةً نصيّةً إلى محوِّل التّرميز، إذ سيحويل ترميز هذه السلسلة إلى ترميز الوجهة نفسه وتوضع في نهاية مخرجات عملية التحويل.
 
 
*التّابع <code>[[Ruby/Encoding/Converter/finish|finish]]</code>: يُنهي محوّل الترميز، ويُعيد الجزء الأخير من السلسلة النصيّة التي يحول ترميزها حينذاك.
 
*التّابع <code>[[Ruby/Encoding/Converter/finish|finish]]</code>: يُنهي محوّل الترميز، ويُعيد الجزء الأخير من السلسلة النصيّة التي يحول ترميزها حينذاك.
 
+
==مصادر==
== مصادر ==
+
*[http://ruby-doc.org/core-2.5.1/Encoding/Converter.html#method-i-insert_output صفحة التابع insert_output في الصنف Encoding::Converter في توثيق روبي الرسمي.]
* [http://ruby-doc.org/core-2.5.1/Encoding/Converter.html#method-i-insert_output صفحة التابع insert_output في الصنف Encoding::Converter في توثيق روبي الرسمي.]
 
 
[[تصنيف:Ruby]]
 
[[تصنيف:Ruby]]
 
[[تصنيف:Ruby Method]]
 
[[تصنيف:Ruby Method]]
 +
[[تصنيف:Ruby Encoding]]
 
[[تصنيف:Ruby Encoding::Converter]]
 
[[تصنيف:Ruby Encoding::Converter]]

المراجعة الحالية بتاريخ 12:52، 15 أكتوبر 2018

يضيف التّابع insert_output سلسلةً نصيّةً إلى محوِّل التّرميز، إذ سيُحول ترميز هذه السلسلة إلى ترميز الوجهة نفسه وتُوضع في نهاية مخرجات عملية التحويل.

إذا كان التّرميز الوجهة هو من أحد الترميزات التي لها حالة (stateful encodings)، فستُحوَّل السلسلة حسب حالة الترميز وتُحدَّث الحالة بعدئذٍ.

لا يجب استخدام هذا التّابع إلا عند حدوث أخطاء في عملية التحويل.

البنية العامة

insert_output(string)  nil

المعاملات

string

السلسلة النصيّة المراد إدخالها في محوَّل الترميز.

القيم المعادة

تعاد القيمة nil بعد إضافة السلسلة النصية string إلى محوِّل التّرميز.

أمثلة

مثالٌ عن استخدام التابع insert_output:

ec = Encoding::Converter.new("utf-8", "iso-8859-1")
src = "HIRAGANA LETTER A is \u{3042}."
dst = ""
p ec.primitive_convert(src, dst)    #=> :undefined_conversion
puts "[#{dst.dump}, #{src.dump}]"   #=> ["HIRAGANA LETTER A is ", "."]
ec.insert_output("<err>")
p ec.primitive_convert(src, dst)    #=> :finished
puts "[#{dst.dump}, #{src.dump}]"   #=> ["HIRAGANA LETTER A is <err>.", ""]

ec = Encoding::Converter.new("utf-8", "iso-2022-jp")
src = "\u{306F 3041 3068 2661 3002}" # U+2661 is not representable in iso-2022-jp
dst = ""
p ec.primitive_convert(src, dst)    #=> :undefined_conversion
puts "[#{dst.dump}, #{src.dump}]"   #=> ["\e$B$O$!$H".force_encoding("ISO-2022-JP"), "\xE3\x80\x82"]
ec.insert_output "?"                # state change required to output "?".
p ec.primitive_convert(src, dst)    #=> :finished
puts "[#{dst.dump}, #{src.dump}]"   #=> ["\e$B$O$!$H\e(B?\e$B!#\e(B".force_encoding("ISO-2022-JP"), ""]

انظر أيضًا

  • التّابع asciicompat_encoding: يُعيد التّرميز المتوافق مع ASCII المقابل للترميز المعطى.
  • التّابع destination_encoding: يُعيد التّرميز الوجهة على شكل كائنٍ من الصنف Encoding.
  • التّابع source_encoding: يُعيد الترميز المصدر على شكل كائن من الصنف Encoding.
  • التّابع primitive_convert: يحوّل ترميز جميع المحتويات المخزَّنة مؤقتًا (buffer) في مخزن معين أو مجال محدد منها ثم يضع الناتج في مخزَّن محدَّد.
  • التّابع finish: يُنهي محوّل الترميز، ويُعيد الجزء الأخير من السلسلة النصيّة التي يحول ترميزها حينذاك.

مصادر