পাইথনের মতো ভিবি.এনইটি তে মাল্টলাইন স্ট্রিং থাকার কোনও উপায় আছে কি?
a = """
multi
line
string
"""
বা পিএইচপি?
$a = <<<END
multi
line
string
END;
অবশ্যই কিছু না
"multi" & _
"line
পাইথনের মতো ভিবি.এনইটি তে মাল্টলাইন স্ট্রিং থাকার কোনও উপায় আছে কি?
a = """
multi
line
string
"""
বা পিএইচপি?
$a = <<<END
multi
line
string
END;
অবশ্যই কিছু না
"multi" & _
"line
উত্তর:
অনুরূপ প্রভাব অর্জন করতে আপনি এক্সএমএল লিটারালগুলি ব্যবহার করতে পারেন :
Imports System.XML
Imports System.XML.Linq
Imports System.Core
Dim s As String = <a>Hello
World</a>.Value
মনে রাখবেন যে আপনার যদি বিশেষ অক্ষর থাকে তবে আপনার সিডিএটি ব্লক ব্যবহার করা উচিত:
Dim s As String = <![CDATA[Hello
World & Space]]>.Value
মাল্টি-লাইন স্ট্রিং লিটারালগুলি ভিজ্যুয়াল বেসিক 14 এ চালু করা হয়েছিল ( ভিজ্যুয়াল স্টুডিও 2015 এ )। উপরের উদাহরণটি এখন এইভাবে লেখা যেতে পারে:
Dim s As String = "Hello
World & Space"
MSDN article isn't updated yet (as of 2015-08-01), so check some answers below for details.
বিস্তারিত যোগ করা হয় Roslyn নিউ ভাষার-বৈশিষ্ট্য-ইন-ভিবি-14 গিটহাব সংগ্রহস্থল।
s="... a=~someint~ ..."এবং তারপর s=s.Replace("~someint~', SomeInt)।
VB.Net ধরনের কোনো বৈশিষ্ট্য আছে এবং এটি হবে না ভিসুয়াল স্টুডিও 2010 বৈশিষ্ট্য যা jirwin উল্লেখ করা হয় অন্তর্নিহিত লাইন ধারাবাহিকতা বলা হয় আসছে করা। এটি একটি বহু-লাইন বিবৃতি বা অভিব্যক্তি থেকে _ অপসারণের সাথে সম্পর্কিত। এটি _ দিয়ে মাল্টলাইন স্ট্রিংটি বন্ধ করার প্রয়োজনটিকে সরিয়ে দেয় তবে ভিবিতে এখনও কোনও মাল্ট-লাইন স্ট্রিং নেই।
মাল্টলাইন স্ট্রিং জন্য উদাহরণ
ভিজ্যুয়াল স্টুডিও 2008
Dim x = "line1" & vbCrlf & _
"line2"
ভিজ্যুয়াল স্টুডিও 2010
Dim x = "line1" & vbCrlf &
"line2"
আমি এই রূপটি ব্যবহার করেছি:
Dim query As String = <![CDATA[
SELECT
a.QuestionID
FROM
CR_Answers a
INNER JOIN
CR_Class c ON c.ClassID = a.ClassID
INNER JOIN
CR_Questions q ON q.QuestionID = a.QuestionID
WHERE
a.CourseID = 1
AND
c.ActionPlan = 1
AND q.Q_Year = '11/12'
AND q.Q_Term <= (SELECT CurrentTerm FROM CR_Current_Term)
]]>.Value()
এটি স্ট্রিং <>> এ অনুমতি দেয়
Dim sql As String = "
SELECT ID, Description
FROM inventory
ORDER BY DateAdded
"
ব্যবহারের পূর্ণতা বাড়াতে আপনি স্ট্রিং ইন্টারপোলেশনের সাথে তাদের একত্রিত করতে পারেন :
Dim primaryKey As String = "ID"
Dim inventoryTable As String = "inventory"
Dim sql As String = $"
SELECT {primaryKey}, Description
FROM {inventoryTable}
ORDER BY DateAdded
"
নোট ইন্টারপোলেট স্ট্রিং দিয়ে শুরু যে $এবং আপনি যত্ন নিতে প্রয়োজন ", {এবং }ভিতরে অন্তর্ভুক্ত - তাদের রূপান্তর "", {{বা}} যথাক্রমে।
এখানে আপনি উপরের কোড উদাহরণের অন্তরবিচ্ছিন্ন অংশগুলির প্রকৃত বাক্য গঠন হাইলাইট করতে পারেন :
যদি আপনি ভেবে থাকেন যে ভিজ্যুয়াল স্টুডিও সম্পাদক দ্বারা তাদের স্বীকৃতিটিও রিফ্যাক্টরিংয়ের সাথে কাজ করে (যেমন ভেরিয়েবলগুলিকে গণ-নামকরণ), তবে আপনি ঠিক বলেছেন, কোড রিফ্যাক্টরিং এগুলির সাথে কাজ করে। উল্লেখ না করে যে তারা ইন্টেলিজেন্স, রেফারেন্স গণনা বা কোড বিশ্লেষণকেও সমর্থন করে।
মাল্টলাইন স্ট্রিং লিটারালগুলি ভিজ্যুয়াল বেসিক 14.0-এ চালু করা হয়েছে - https://roslyn.codeplex.com/discussion/571884 এ
আপনি এখন VS2015 পূর্বরূপে ব্যবহার করতে পারেন, এখনই - http://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs (নোট করুন যে কোনও বয়স্ককে লক্ষ্য করার পরেও আপনি এখনও VS2015 ব্যবহার করতে পারেন .NET ফ্রেমওয়ার্কের সংস্করণ)
Dim multiline = "multi
line
string"
ভিবি স্ট্রিংগুলি মূলত এখন সি # ভারব্যাটিম স্ট্রিংয়ের সমান - তারা \ n এর মতো ব্যাকস্ল্যাশ এস্কেপ সিকোয়েন্সগুলিকে সমর্থন করে না এবং তারা স্ট্রিংয়ের মধ্যে নতুন লাইনের অনুমতি দেয় এবং আপনি ডাবল-কোটস সহ উদ্ধৃতি চিহ্নটি এড়ান ""
এটি আমার জন্য একটি সত্যই সহায়ক নিবন্ধ, তবে কীভাবে সংঘবদ্ধ করা যায় তা কেউ উল্লেখ করেনি কিছু ভেরিয়েবল প্রেরণ করতে চাইলে করেনি, যা আপনাকে 99% সময়ের প্রয়োজন।
... <% = পরিবর্তনশীল %> ...
আপনি এটি কীভাবে করেন তা এখানে:
<SQL>
SELECT * FROM MyTable WHERE FirstName='<%= EnteredName %>'
</SQL>.Value
ঠিক আছে, যেহেতু আপনি আপনার অজগরটির উপরে রয়েছেন বলে আমি মনে করি যে আপনি আপনার পাঠ্যটি অজগরে অনুলিপি করতে চান:
s="""this is gonna
last quite a
few lines"""
তারপরে একটি করুন:
for i in s.split('\n'):
print 'mySB.AppendLine("%s")' % i
# mySB.AppendLine("this is gonna")
# mySB.AppendLine("last quite a")
# mySB.AppendLine("few lines")
অথবা
print ' & _ \n'.join(map(lambda s: '"%s"' % s, s.split('\n')))
# "this is gonna" & _
# "last quite a" & _
# "few lines"
তাহলে কমপক্ষে আপনি এটি অনুলিপি করে আপনার ভিবি কোডে রাখতে পারেন। আপনার পেস্ট বাফারে যা আছে তার জন্য এটি করার জন্য আপনি যদি হটকি বেঁধে রাখেন (দ্রুত সঙ্গে নেওয়া: অটোহোটকি ) একই ধারণাটি এসকিউএল ফর্ম্যাটারের জন্য ভাল কাজ করে।
এক্সিলেন্ট ক্লাসটি ব্যবহার করে vb.net- এ মাল্টি-লাইন স্ট্রিং লিটারাল।
Imports System.Xml.Linq
Public Sub Test()
dim sOderBy as string = ""
dim xe as XElement = <SQL>
SELECT * FROM <%= sTableName %>
<ORDER_BY> ORDER BY <%= sOrderBy %></ORDER_BY>
</SQL>
'** conditionally remove a section
if sOrderBy.Length = 0 then xe.<ORDER BY>.Remove
'** convert XElement value to a string
dim sSQL as String = xe.Value
End Sub
আমার কাছে এটি ভাষা হিসাবে ভিবি সম্পর্কে সবচেয়ে বিরক্তিকর বিষয়। সিরিয়াসলি, আমি একবার একটি ফাইলে স্ট্রিং লিখেছি এবং কোডগুলি কিছু লিখেছি:
Dim s as String = file_get_contents("filename.txt")
কেবলমাত্র যদি প্রয়োজন হয় আমি সরাসরি এসকিউএল সার্ভারে কোয়েরিটি পরীক্ষা করতে পারি।
আমার বর্তমান পদ্ধতিটি এসকিউএল সার্ভারে একটি সঞ্চিত পদ্ধতি ব্যবহার করা এবং কেবলমাত্র কল করা যাতে আমি কোয়েরিগুলিতে প্যারামিটারগুলিতে যেতে পারি ইত্যাদি to
আমি ভেরিয়েবলের জন্য কীভাবে <! [সিডিএটিএ [<% = সহ) উভয় ব্যবহার করতে পারি তা বুঝতে পেরেছি যা আপনাকে উদ্বেগ ছাড়াই কোড করার অনুমতি দেয়।
আপনাকে মূলত ভিবি ভেরিয়েবলের আগে সিডিএটিএ ট্যাগগুলি সমাপ্ত করতে হবে এবং তারপরে এটি পুনরায় যুক্ত করতে হবে যাতে সিডিএটিএ ভিবি কোডটি ক্যাপচার করে না। আপনাকে একটি কোডে পুরো কোড ব্লকটি মোড়ানো দরকার কারণ আপনার কাছে একাধিক সিডিএটি ব্লক থাকবে।
Dim script As String = <code><![CDATA[
<script type="text/javascript">
var URL = ']]><%= domain %><![CDATA[/mypage.html';
</script>]]>
</code>.value
দাবি অস্বীকার: আমি অজগর ভালবাসি। এটি মাল্টি-লাইন স্ট্রিংগুলির একমাত্র কারণ।
তবে আমি ভিবি.নেটও করি, তাই আরও বেশি পঠনযোগ্য দীর্ঘ স্ট্রিংয়ের জন্য আমার শর্ট-কাটটি এখানে।
Dim lines As String() = {
"Line 1",
"Line 2",
"Line 3"
}
Dim s As String = Join(lines, vbCrLf)
আপনি এই জাতীয় জন্য XML ব্যবহার করতে পারেন
dim vrstr as string = <s>
some words
some words
some
words
</s>
ভিজ্যুয়াল স্টুডিও 2010 (ভিবি নেট) এ আমি নিম্নলিখিতটি চেষ্টা করি এবং ভাল কাজ করে
Dim HtmlSample As String = <anything>what ever you want to type here with multiline strings</anything>
dim Test1 as string =<a>onother multiline example</a>
ভিসুয়াল বেসিক 14 পাওয়া যায় ভিসুয়াল স্টুডিও 2015 অংশ হিসেবে https://msdn.microsoft.com/en-us/magazine/dn890368.aspx
তবে এখনও আর # দ্বারা সমর্থিত নয়। সুসংবাদ তারা শীঘ্রই সমর্থিত হবে! আপনার যে জেটব্রেইনগুলিরও প্রয়োজন তা অবহিত করার জন্য দয়া করে ইউট্রাককে ভোট দিন ।
কোনও লাইন কোড ভেরিয়েবল সহ VB.Net- এ আপনার যদি একটি এক্সএমএল আক্ষরিক প্রয়োজন হয় তবে আপনি এটি এটি করবেন:
<Tag><%= New XCData(T.Property) %></Tag>
যেহেতু এটি একটি পঠনযোগ্যতা সমস্যা তাই আমি নিম্নলিখিত কোডগুলি ব্যবহার করেছি:
MySql = ""
MySql = MySql & "SELECT myTable.id"
MySql = MySql & " FROM myTable"
MySql = MySql & " WHERE myTable.id_equipment = " & lblId.Text
ব্যবহার করুন vbCrLfবা vbNewLine। এটি মেসেজবক্স এবং আমি পরীক্ষা করা অনেকগুলি নিয়ন্ত্রণের সাথে কাজ করে।
Dim str As String
str = "First line" & vbCrLf & "Second line"
MsgBox(str)
str = "First line" & vbNewLine & "Second line"
MsgBox(str)
এটি 2 টি লাইন সহ দুটি অভিন্ন মেসেজবক্স দেখাবে।
না, ভিবি.এনইটি-তে এখনও এমন বৈশিষ্ট্য নেই। এটি ভিবির পরবর্তী পুনরাবৃত্তিতে উপলব্ধ হবে (ভিজ্যুয়াল বেসিক 10) তবে ( লিঙ্ক )
যদি এটি সি # এর মতো হয় (আমার কাছে ভিবি নেই installed নেট ইনস্টল নেই) আপনি @ এর সাথে একটি স্ট্রিং উপসর্গ করতে পারেন
foo = @"Multiline
String"
এটি "" সি: \ উইন্ডোজ \ সিস্টেম 32 \ "এর মতো জিনিসের জন্যও দরকারী - এটি মূলত পলায়ন বন্ধ করে দেয় এবং মাল্টলাইন চালু করে।