1s এ স্ট্রিং এর সাথে কাজ করার জন্য ফাংশন। স্ট্রিংগুলির সাথে কাজ করার জন্য নতুন ফাংশন। ফরম্যাটিং ফাংশন StrTemplate()

অন্তর্নির্মিত 1C ভাষায় 1C 8.3 লাইনগুলি মানগুলিকে উপস্থাপন করে আদিম প্রকার লাইন. মূল্যবোধ এই ধরনেরনির্বিচারে দৈর্ঘ্যের একটি ইউনিকোড স্ট্রিং রয়েছে। স্ট্রিং টাইপ ভেরিয়েবল হল উদ্ধৃতিতে আবদ্ধ অক্ষরের একটি সেট।

উদাহরণ 1. টেক্সট দিয়ে একটি স্ট্রিং ভেরিয়েবল তৈরি করা যাক।

StringVariable = "হ্যালো ওয়ার্ল্ড!";

1s-এ স্ট্রিংগুলির সাথে কাজ করার জন্য ফাংশন 8.3

এই বিভাগটি প্রধান ফাংশনগুলি প্রদান করবে যা আপনাকে 1c-এ লাইন পরিবর্তন করতে বা তাদের মধ্যে থাকা তথ্য বিশ্লেষণ করতে দেয়।

স্ট্রেংথ

স্ট্রেংথ(<Строка>) . একটি প্যারামিটার হিসাবে পাস করা স্ট্রিংটিতে থাকা অক্ষরের সংখ্যা প্রদান করে।

উদাহরণ 2. আসুন "হ্যালো ওয়ার্ল্ড!" লাইনে অক্ষরের সংখ্যা গণনা করি

স্ট্রিং = "হ্যালো ওয়ার্ল্ড!"; অক্ষরের সংখ্যা = StrLength(String); রিপোর্ট (সংখ্যা অক্ষর);

এই কোডটি কার্যকর করার ফলাফল লাইনের অক্ষরের সংখ্যা প্রদর্শন করা হবে: 11।

AbbrL

AbbrL(<Строка>) . প্রথমটির বাম দিকে গুরুত্বহীন অক্ষর ছাঁটাই করে অর্থবহ প্রতীকলাইনে
ছোট অক্ষর:

  • স্থান
  • নন-ব্রেকিং স্পেস;
  • ট্যাবুলেশন;
  • গাড়ি ফেরত;
  • লাইন ফিড;
  • ফর্মের অনুবাদ (পৃষ্ঠা)।

উদাহরণ 3. লাইনের বাম দিক থেকে সমস্ত স্থান সরান "বিশ্ব!" এবং এটিতে "হ্যালো" লাইন যোগ করুন।

স্ট্রিং = সংক্ষিপ্ত রূপ ("বিশ্ব!"); স্ট্রিং = "হ্যালো" + স্ট্রিং; রিপোর্ট (স্ট্রিং);

এই কোডটি কার্যকর করার ফলাফলটি পর্দায় "হ্যালো ওয়ার্ল্ড!" লাইনের প্রদর্শন হবে।

সংক্ষিপ্ত

সংক্ষেপণ(<Строка>) . স্ট্রিংয়ের প্রথম উল্লেখযোগ্য অক্ষরের ডানদিকে অ-গুরুত্বপূর্ণ অক্ষরগুলিকে ছাঁটাই করে৷

উদাহরণ 4. "হ্যালো" এবং "শান্তি!" লাইন থেকে ফর্ম বাক্যাংশ "হ্যালো বিশ্ব!"

লাইন = সংক্ষেপণ("হ্যালো")+" "+ সংক্ষেপণ("বিশ্ব!"); রিপোর্ট (স্ট্রিং);

AbbrLP

AbbrLP(<Строка>) . স্ট্রিংয়ের প্রথম উল্লেখযোগ্য অক্ষরের ডানদিকে অ-গুরুত্বপূর্ণ অক্ষরগুলিকে ছাঁটাই করে, এবং স্ট্রিংয়ের প্রথম উল্লেখযোগ্য অক্ষরের বামে অ-গুরুত্বপূর্ণ অক্ষরগুলিকেও ছাঁটাই করে৷ এই ফাংশনআগের দুটির চেয়ে বেশি ব্যবহৃত হয়, কারণ এটি আরও সার্বজনীন।

উদাহরণ 5. প্রতিপক্ষের নামে বাম এবং ডানদিকে তুচ্ছ অক্ষরগুলি সরান৷

কাউন্টারপার্টি = কাউন্টারপার্টিজ। বিস্তারিত দ্বারা খুঁজুন AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

সিংহ

সিংহ(<Строка>, <ЧислоСимволов>) . স্ট্রিং এর প্রথম অক্ষর পায়, অক্ষরের সংখ্যা প্যারামিটারে নির্দিষ্ট করা হয় অক্ষরের সংখ্যা।

উদাহরণ 6. গঠন করা যাক কর্মচারীকর্মচারীর প্রথম, শেষ এবং পৃষ্ঠপোষক নাম রয়েছে। পদবি এবং আদ্যক্ষর সহ একটি স্ট্রিং পান।

NameInitial = Lev(Employee.Name, 1); প্যাট্রোনিমিক ইনিশিয়াল = লিও (কর্মচারী। পৃষ্ঠপোষকতা, 1); পূর্ণনাম = কর্মচারী। শেষনাম + " " + প্রথম নাম প্রাথমিক + "।"

+ মধ্য প্রাথমিক + "।";

ঠিক<Строка>, <ЧислоСимволов>) ডান( অক্ষরের সংখ্যা।. একটি স্ট্রিং এর শেষ অক্ষর পায়, প্যারামিটারে নির্দিষ্ট অক্ষরের সংখ্যা

যদি অক্ষরের নির্দিষ্ট সংখ্যা স্ট্রিংয়ের দৈর্ঘ্য অতিক্রম করে, তাহলে পুরো স্ট্রিংটি ফেরত দেওয়া হয়। উদাহরণ 7. একটি স্ট্রিং ভেরিয়েবলের শেষে "yyyymmdd" বিন্যাসে একটি তারিখ লিখতে দিন, তারিখ সহ একটি স্ট্রিং পান এবং এটিকে টাইপে রূপান্তর করুন.

তারিখ স্ট্রিং = "বর্তমান তারিখ

: 20170910"; স্ট্রিংডেট = রাইটস(স্ট্রিং, 8); তারিখ = তারিখ(স্ট্রিংডেট);

বুধবার<Строка>, <НачальныйНомер>, <ЧислоСимволов>) বুধবার( লাইন. একটি প্যারামিটার হিসাবে পাস করা স্ট্রিং থেকে একটি সাবস্ট্রিং পায় , সেই অক্ষর থেকে শুরু করে যার সংখ্যা প্যারামিটারে নির্দিষ্ট করা আছেপ্রাথমিক সংখ্যা অক্ষরের সংখ্যা।এবং দৈর্ঘ্য পরামিতি মধ্যে পাস , সেই অক্ষর থেকে শুরু করে যার সংখ্যা প্যারামিটারে নির্দিষ্ট করা আছেএকটি লাইনে অক্ষরের সংখ্যা 1 থেকে শুরু হয়। যদি প্যারামিটারে থাকে শূন্যের চেয়ে কম বা সমান একটি মান নির্দিষ্ট করা হয়, তাহলে প্যারামিটারটি মান 1 নেয়। যদি পরামিতিঅক্ষরের সংখ্যা

নির্দিষ্ট করা নেই, তারপর লাইনের শেষ পর্যন্ত অক্ষর নির্বাচন করা হয়।

উদাহরণ 8. নবম অবস্থান থেকে শুরু হওয়া স্ট্রিং ভেরিয়েবলে অঞ্চল কোড ধারণ করা যাক, আপনাকে এটি পেতে হবে এবং একটি পৃথক লাইনে লিখতে হবে।

স্ট্রিং = "অঞ্চল: 99 মস্কো"; অঞ্চল = গড়(স্ট্রিং, 9, 2);

পৃষ্ঠা খুঁজুন<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) StrFind(

  • লাইন. একটি স্ট্রিং-এ একটি নির্দিষ্ট সাবস্ট্রিং অনুসন্ধান করে, পাওয়া সাবস্ট্রিং-এর প্রথম অক্ষরের অবস্থান নম্বর ফেরত দেয়। আসুন এই ফাংশনের পরামিতিগুলি দেখি:
  • . উৎস স্ট্রিং;অনুসন্ধান সাবস্ট্রিং
  • . অনুসন্ধান সাবস্ট্রিং;অনুসন্ধানের দিকনির্দেশ
    • . একটি স্ট্রিং এ একটি সাবস্ট্রিং অনুসন্ধান করার দিক নির্দেশ করে। মান নিতে পারে:;
    • অনুসন্ধানের দিক। শুরু থেকে;
  • অনুসন্ধান। শেষ দিকপ্রাথমিক অবস্থান
  • . স্ট্রিং এর অবস্থান নির্দিষ্ট করে যেখানে অনুসন্ধান শুরু হয়;সংখ্যা ঘটনা

. উৎস স্ট্রিং-এ অনুসন্ধান করা সাবস্ট্রিং-এর সংঘটন সংখ্যা নির্দিষ্ট করে।

উদাহরণ 9. লাইনে "হ্যালো ওয়ার্ল্ড!" "এবং" অক্ষরের শেষ ঘটনার অবস্থান নির্ণয় কর।

অবস্থান সংখ্যা = StrFind("হ্যালো ওয়ার্ল্ড!", "এবং", SearchDirection.End); রিপোর্ট (পজিশন নম্বর);

এই কোডটি কার্যকর করার ফলাফলটি "এবং" চিহ্নের শেষ উপস্থিতির সংখ্যা প্রদর্শন করা হবে: 9।

ভিআরজি<Строка>) ভিআরজি(

. 1s8-এ নির্দিষ্ট স্ট্রিং-এর সমস্ত অক্ষরকে বড় হাতের অক্ষরে রূপান্তর করে।

উদাহরণ 10: "হ্যালো ওয়ার্ল্ড!" স্ট্রিংটিকে রূপান্তর করুন। বড় ক্ষেত্রে

StringVreg = VReg("হ্যালো ওয়ার্ল্ড!"); রিপোর্ট(স্ট্রিংভিরেগ);

এই কোডটি কার্যকর করার ফলাফলটি "হ্যালো ওয়ার্ল্ড!" লাইনের প্রদর্শন হবে।

এনআরজি<Строка>) এনআরজি(

. 1s 8-এ নির্দিষ্ট স্ট্রিংয়ের সমস্ত অক্ষরকে ছোট হাতের অক্ষরে রূপান্তর করে।

StringNreg = Nreg("HELLO WORLD!"); রিপোর্ট(স্ট্রিংভিরেগ);

এই কোডটি কার্যকর করার ফলাফলটি "হ্যালো ওয়ার্ল্ড!" লাইনের প্রদর্শন হবে।

ট্রেগ

Treg(<Строка>) . একটি স্ট্রিংকে নিম্নরূপ রূপান্তরিত করে: প্রতিটি শব্দের প্রথম অক্ষর বড় হাতের অক্ষরে রূপান্তরিত হয়, শব্দের অবশিষ্ট অক্ষরগুলি ছোট হাতের অক্ষরে রূপান্তরিত হয়।

উদাহরণ 12: "হ্যালো ওয়ার্ল্ড!" লাইনের শব্দের প্রথম অক্ষর বড় করুন

StringTreg = Treg("হ্যালো ওয়ার্ল্ড!"); রিপোর্ট (স্ট্রিংট্রেগ);

এই কোডটি কার্যকর করার ফলাফলটি "হ্যালো ওয়ার্ল্ড!" লাইনের প্রদর্শন হবে।

প্রতীক

প্রতীক(<КодСимвола>) . এর ইউনিকোড কোড দ্বারা একটি অক্ষর পায়।

উদাহরণ 13. "হ্যালো ওয়ার্ল্ড!" লাইনে বাম এবং ডান যোগ করুন প্রতীক ★

StringWithStars = প্রতীক("9733")+"হ্যালো ওয়ার্ল্ড!"+সিম্বল("9733"); রিপোর্ট (স্ট্রিংউইথস্টারস);

এই কোডটি কার্যকর করার ফলাফলটি "Hello World!★" লাইনের প্রদর্শন হবে।

প্রতীক কোড

সিম্বলকোড(<Строка>, <НомерСимвола>) . প্রথম প্যারামিটারে নির্দিষ্ট করা স্ট্রিং থেকে ইউনিকোড অক্ষর কোড পায়, দ্বিতীয় প্যারামিটারে নির্দিষ্ট অবস্থানে অবস্থিত।

উদাহরণ 14. "হ্যালো ওয়ার্ল্ড!" লাইনের শেষ অক্ষরের কোডটি খুঁজে বের করুন।

স্ট্রিং = "হ্যালো ওয়ার্ল্ড!"; ক্যারেক্টার কোড = ক্যারেক্টারকোড(স্ট্রিং, স্ট্রিং লেংথ(স্ট্রিং)); বিজ্ঞপ্তি (ক্যারেক্টার কোড);

এই কোডটি কার্যকর করার ফলাফলটি প্রতীক কোডের প্রদর্শন হবে “!” - 33।

খালি স্ট্রিং

খালি স্ট্রিং(<Строка>) . স্ট্রিংটিতে শুধুমাত্র তুচ্ছ অক্ষর রয়েছে কিনা তা পরীক্ষা করে, অর্থাৎ এটি খালি কিনা।

উদাহরণ 15. তিনটি স্থান সমন্বিত একটি স্ট্রিং খালি কিনা তা পরীক্ষা করুন।

খালি = EmptyString(""); রিপোর্ট (খালি);

এই কোডটি কার্যকর করার ফলাফল হবে "হ্যাঁ" শব্দের প্রদর্শন (একটি যৌক্তিক মানের একটি স্ট্রিং অভিব্যক্তি সত্য).

পৃষ্ঠা প্রতিস্থাপন করুন

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . সোর্স স্ট্রিং-এ সার্চ সাবস্ট্রিং-এর সমস্ত ঘটনা খুঁজে বের করে এবং প্রতিস্থাপন সাবস্ট্রিং দিয়ে প্রতিস্থাপন করে।

উদাহরণ 16. "হ্যালো ওয়ার্ল্ড!" লাইনে "শান্তি" শব্দটিকে "বন্ধু" শব্দ দিয়ে প্রতিস্থাপন করুন।

স্ট্রিং = StrReplace("হ্যালো ওয়ার্ল্ড!", "ওয়ার্ল্ড", "ফ্রেন্ডস"); রিপোর্ট (স্ট্রিং);

এই কোডটি কার্যকর করার ফলাফলটি "হ্যালো ফ্রেন্ডস!" লাইনের প্রদর্শন হবে।

StrNumberLines

StrNumberRow(<Строка>) . আপনাকে একটি মাল্টিলাইন স্ট্রিংয়ে লাইনের সংখ্যা গণনা করতে দেয়। যেতে নতুন লাইন 1s 8 এ চিহ্নটি ব্যবহৃত হয় পিএস(নতুন লাইন চরিত্র)।

উদাহরণ 17. পাঠ্যের লাইনের সংখ্যা নির্ধারণ করুন:
"প্রথম লাইন
দ্বিতীয় লাইন
তৃতীয় লাইন"

সংখ্যা = StrNumberString ("প্রথম লাইন" + অক্ষর। PS + "দ্বিতীয় লাইন" + প্রতীক। PS + "তৃতীয় লাইন"); রিপোর্ট (সংখ্যা);

এই কোডটি কার্যকর করার ফলাফলটি পাঠ্যের লাইনের সংখ্যা প্রদর্শন হবে: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . একটি মাল্টিলাইন স্ট্রিং এর সংখ্যা দ্বারা একটি লাইন পায়। লাইন সংখ্যা 1 থেকে শুরু হয়।

উদাহরণ 18. পাঠ্যের শেষ লাইনটি পান:
"প্রথম লাইন
দ্বিতীয় লাইন
তৃতীয় লাইন"

পাঠ্য = "প্রথম লাইন" + PS + "দ্বিতীয় লাইন" + PS + "তৃতীয় লাইন"; LastRow = StrGetRow(Text, StrNumberLines(Text)); রিপোর্ট (শেষ লাইন);

এই কোডটি কার্যকর করার ফলাফলটি "তৃতীয় লাইন" লাইনের প্রদর্শন হবে।

পৃষ্ঠা সংখ্যা ঘটনা

স্ট্রসংখ্যার ঘটনা(<Строка>, <ПодстрокаПоиска>) . একটি স্ট্রিং-এ নির্দিষ্ট সাবস্ট্রিং-এর সংঘটনের সংখ্যা প্রদান করে। ফাংশন কেস সংবেদনশীল.

উদাহরণ 19. "c" অক্ষরটি "1s 8.3 এবং 8.2 এর লাইন" লাইনে কতবার প্রদর্শিত হবে তা নির্ধারণ করুন, তার ক্ষেত্রে নির্বিশেষে।

লাইন = "1s 8.3 এবং 8.2 তে লাইন"; সংখ্যা ঘটনা = StrNumberOccurrences(Vreg(String), "C"); রিপোর্ট (সংখ্যা ঘটনা);

এই কোডটি কার্যকর করার ফলাফলটি সংঘটনের সংখ্যা প্রদর্শন করা হবে: 2।

পৃষ্ঠা শুরু হয় এর সাথে

StrStartsWith(<Строка>, <СтрокаПоиска>) . প্রথম প্যারামিটারে পাস করা স্ট্রিংটি দ্বিতীয় প্যারামিটারের স্ট্রিং দিয়ে শুরু হয় কিনা তা পরীক্ষা করে।

উদাহরণ 20. নির্বাচিত কাউন্টারপার্টির টিআইএন 1 নম্বর দিয়ে শুরু হয় কিনা তা নির্ধারণ করুন। চলকটি দিন কাউন্টারপার্টি প্রতিপক্ষ.

TIN = Counterparty.TIN; StartsUNits = StrStartsWith(TIN, "1"); যদি ইউনিট দিয়ে শুরু হয় তাহলে //আপনার কোড EndIf;

PageEndsOn

StrEndsWith(<Строка>, <СтрокаПоиска>) . প্রথম প্যারামিটারে পাস করা স্ট্রিংটি দ্বিতীয় প্যারামিটারের স্ট্রিংয়ের সাথে শেষ হয় কিনা তা পরীক্ষা করে।

উদাহরণ 21. নির্বাচিত কাউন্টারপার্টির টিআইএন 2 নম্বর দিয়ে শেষ হয় কিনা তা নির্ধারণ করুন। চলকটি দিন কাউন্টারপার্টিএকটি ডিরেক্টরি উপাদানের একটি রেফারেন্স সংরক্ষণ করা হয় প্রতিপক্ষ.

TIN = Counterparty.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); যদি EndsInTwo তারপর //আপনার কোড EndIf;

পেজ স্প্লিট

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . নির্দিষ্ট ডিলিমিটার অক্ষর ব্যবহার করে একটি স্ট্রিংকে অংশে বিভক্ত করে এবং ফলস্বরূপ স্ট্রিংগুলিকে একটি অ্যারেতে লেখে। প্রথম প্যারামিটারটি উৎস স্ট্রিং সংরক্ষণ করে, দ্বিতীয়টিতে বিভাজক ধারণকারী স্ট্রিং রয়েছে, তৃতীয়টি নির্দেশ করে যে অ্যারেতে খালি স্ট্রিং লেখা উচিত কিনা (ডিফল্টরূপে সত্য).

উদাহরণ 22. আমাদের একটি স্ট্রিং আছে যেখানে সংখ্যাগুলি ";" চিহ্ন দ্বারা পৃথক করা হয়েছে, স্ট্রিং থেকে সংখ্যাগুলির একটি অ্যারে পান।

স্ট্রিং = "1; 2; 3"; অ্যারে = StrDivide(স্ট্রিং, ";"); সংখ্যার জন্য = 0 দ্বারা Array.Quantity() - 1 চক্র প্রচেষ্টা অ্যারে[গণনা] = সংখ্যা(AbbrLP(অ্যারে[গণনা]));

ব্যতিক্রম অ্যারে [Sch] = 0;

EndAttemptsEndCycle;

সম্পাদনের ফলে, 1 থেকে 3 পর্যন্ত সংখ্যা সহ একটি অ্যারে পাওয়া যাবে।<Строки>, <Разделитель>) পেজ কানেক্ট

StrConnect(

অ্যাকাউন্টের জন্য = 0 দ্বারা Array.Quantity() - 1 Cycle Array[Act] = String(Array[Act]); এন্ডসাইকেল; সারি = StrConnect(অ্যারে, "; ");

একটি প্রোগ্রামিং ভাষার মৌলিক ক্ষমতা সাধারণত সংখ্যা এবং স্ট্রিং সঙ্গে কাজ অন্তর্ভুক্ত. সাধারণত, এই ক্ষমতাগুলি কম্পাইলার কোডে হার্ড-কোড করা হয় (অথবা প্রোগ্রামিং ভাষার "বেস" ক্লাসগুলি প্রয়োগ করা হয়)।

1C-তে, স্ট্রিংগুলির সাথে কাজ করার ক্ষমতা প্ল্যাটফর্মেই প্রোগ্রাম করা হয়। আজ আমরা বিল্ট-ইন 1C ভাষায় প্রোগ্রামগুলিতে 1C স্ট্রিংগুলির সাথে কাজ করার বৈশিষ্ট্যগুলি দেখব।

লাইন মান 1C

1. এর সবচেয়ে সহজ দিয়ে শুরু করা যাক। একটি ভেরিয়েবল তৈরি করা এবং এটিতে একটি ধ্রুবক স্ট্রিং মান বরাদ্দ করা 1C-তে এইরকম দেখায়:

পরিবর্তনশীল = "হ্যালো, বিশ্ব!";

আপনি যদি একটি ধ্রুবক 1C স্ট্রিং মানের একটি উদ্ধৃতি অক্ষর নির্দিষ্ট করতে চান, তাহলে আপনাকে এটি দ্বিগুণ করতে হবে ""

পরিবর্তনশীল = "হ্যালো, বিশ্ব"!;

2. লাইন ব্রেক 1C একবারে দুটি উপায়ে নির্দিষ্ট করা যেতে পারে। প্রথমটি প্রতীক ব্যবহার করছে |

পরিবর্তনশীল = "হ্যালো,
| বিশ্ব ";

দ্বিতীয়টি প্রতীক সিস্টেম গণনা ব্যবহার করছে। এটি আপনাকে একটি 1C লাইন বিরতি এবং অন্যান্য নন-প্রিন্টিং অক্ষর, যেমন TAB উভয়ই যোগ করতে দেয়।

পরিবর্তনশীল = "হ্যালো" + প্রতীক. পিএস + "শান্তি!";

3. 1C-তে কনফিগারেশনগুলি শুধুমাত্র একটি ভাষার জন্যই নয় (রাশিয়ান, ইংরেজি বা অন্য) - কিন্তু একই সাথে বিভিন্ন ভাষার জন্য তৈরি করা যেতে পারে। এই ক্ষেত্রে, বর্তমানে ব্যবহৃত ভাষাটি 1C উইন্ডোর নীচে নির্বাচন করা হয়েছে।

ভাষার তালিকা সাধারণ/ভাষা শাখার কনফিগারেশন উইন্ডোতে অবস্থিত। প্রতিটি ভাষার একটি সংক্ষিপ্ত শনাক্তকারী রয়েছে যেমন ruবা eng.

এটা স্পষ্ট যে এই ধরনের কনফিগারেশন প্রোগ্রামিং করার সময়, 1C লাইনগুলিও বহুভাষিক হতে পারে। এটি করার জন্য, এর মাধ্যমে নির্দিষ্ট করে এমন একটি 1C লাইন তৈরি করা সম্ভব; ভাষা শনাক্তকারী দ্বারা বিকল্প:

পরিবর্তনশীল = "ru=""হ্যালো, ওয়ার্ল্ড!""; en=""হ্যালো, ওয়ার্ল্ড!""";

আপনি যদি যথারীতি এইভাবে গঠিত 1C লাইনটি ব্যবহার করেন তবে এটিতে যা লেখা আছে তা হবে। সিস্টেমটিকে দুটি বিকল্পে বিভক্ত করার জন্য এবং পছন্দসই একটি ব্যবহার করার জন্য, আপনাকে НStr() ফাংশনটি ব্যবহার করতে হবে:

// দ্বিভাষিক কনফিগারেশনের জন্য সঠিক
রিপোর্ট(NStr(ভেরিয়েবল));

লাইন টাইপ 1C সহ প্রপস

বৈশিষ্ট্য হল 1C ডিরেক্টরি/নথির একটি ক্ষেত্র। এটি 1C ভাষার একটি প্রোগ্রামের একটি ভেরিয়েবল থেকে আলাদা যে বৈশিষ্ট্যটির জন্য এটির ধরনটি সঠিকভাবে নির্দেশিত (সংখ্যা, 1C স্ট্রিং, ইত্যাদি)। একটি প্রপ কি আপনার স্মৃতিকে রিফ্রেশ করার প্রয়োজন হলে, পাঠটি দেখুন।

আপনি যদি অ্যাট্রিবিউটের ধরন নির্দিষ্ট করেন - লাইন 1C, তবে আপনাকে অবশ্যই অতিরিক্ত প্যারামিটারগুলি নির্দিষ্ট করতে হবে।

1C লাইন সীমাহীন দৈর্ঘ্যে আসে (দৈর্ঘ্য = 0 হিসাবে নির্দেশিত) এবং সীমিত দৈর্ঘ্য, অক্ষরের সঠিক সংখ্যা নির্দেশ করে। সীমাহীন দৈর্ঘ্যের 1C সারিগুলি একটি পৃথক SQL টেবিলে সংরক্ষণ করা হয়, তাই তাদের ব্যবহার সীমিতগুলির তুলনায় কম ফলপ্রসূ হয়৷

এই কারণেই সীমাহীন দৈর্ঘ্যের 1C স্ট্রিংগুলির সীমাবদ্ধতা রয়েছে - সেগুলি সর্বত্র ব্যবহার করা সম্ভব নয়। উদাহরণস্বরূপ, এটি একটি নথি নম্বর, রেফারেন্স কোড, বা পরিমাপ হিসাবে অনুমোদিত নয়৷

1C স্ট্রিং দিয়ে কাজ করা

স্ট্রিংগুলির সাথে কাজ করার জন্য 1C প্ল্যাটফর্মের বেশ কয়েকটি অন্তর্নির্মিত ফাংশন রয়েছে।

  • AbbrLP ("অবিশ্বাস্য, কিন্তু সত্য!")
    1C লাইন থেকে অতিরিক্ত স্পেস সরিয়ে দেয়। যেকোনো প্রকারকে 1C স্ট্রিংয়ে রূপান্তর করতেও ব্যবহার করা যেতে পারে (উদাহরণস্বরূপ, সংখ্যা)।
  • পরিবর্তনশীল = "ভাস্য" + AbbrLP(" প্লাস") + "ওলিয়া"; // "ভাস্যা প্লাস অলিয়া" থাকবে
    বেশ কয়েকটি 1C স্ট্রিং মান যোগ করার একটি উদাহরণ। ফলাফল হবে এক লাইন 1C।
  • পরিবর্তনশীল = লেভ("মিউজিক", 2); // "মু" হবে
    পরিবর্তনশীল = মাঝারি ("সংগীত", 2, 2); // "হুমকি" থাকবে
    পরিবর্তনশীল = অধিকার ("সংগীত", 2); // "কা" থাকবে
    একটি 1C স্ট্রিং থেকে একটি সাবস্ট্রিং পাওয়ার জন্য বিভিন্ন বিকল্প।
  • পরিবর্তনশীল = খুঁজুন("সংগীত", "zy"); // 3টি হবে
    অক্ষর 1 দিয়ে শুরু করে স্ট্রিং 1C-তে একটি সাবস্ট্রিং খুঁজুন।
  • পরিবর্তনশীল = StrLength("Music"); // 6 হবে
    1C লাইনে অক্ষরের সংখ্যা প্রদান করে।
  • রিপোর্ট করুন ("হ্যালো") // 1C উইন্ডোর নীচে বার্তা উইন্ডোতে৷
    সতর্কতা("হ্যালো") //পপআপ ডায়ালগ
    স্ট্যাটাস("হ্যালো") // নীচে বাম দিকে স্ট্যাটাস ডিসপ্লে লাইনে
    .

লাইন 1C অবজেক্ট আনা

আপনি জানেন যে, বর্তমানে কাঠামোগত তথ্য বিনিময়ের জন্য সবচেয়ে জনপ্রিয় বিন্যাস হল XML। এমনকি সর্বশেষ সংস্করণএমএস অফিস শব্দএবং এক্সেল এই বিন্যাসে ফাইলগুলি সংরক্ষণ করুন (যথাক্রমে docx এবং xlsx, এক্সটেনশনটি জিপ-এ পরিবর্তন করুন, একটি আর্কাইভারে খুলুন)।

ডেটা এক্সচেঞ্জের জন্য 1C প্ল্যাটফর্ম বেশ কয়েকটি বিকল্প সরবরাহ করে, যার মধ্যে প্রধানটি হল XML।

1. সবচেয়ে সহজ পদ্ধতি হল Abbreviation() বা String() ফাংশন ব্যবহার করা। আপনি অনুরোধের অংশে REPRESENTATION() ফাংশন ব্যবহার করতে পারেন। তাদের কর্মের ফলাফল একই - তারা ব্যবহারকারীর জন্য যেকোনো 1C বস্তুর একটি স্ট্রিং উপস্থাপনা তৈরি করে।

একটি ডিরেক্টরির জন্য, ডিফল্টরূপে এটি এর নাম হবে। একটি নথির জন্য - নথির নাম, নম্বর এবং তারিখ।

2. যেকোনো 1C অবজেক্ট (নিষেধাজ্ঞা সহ) XML-এ রূপান্তরিত হতে পারে এবং এর বিপরীতে। রূপান্তর প্রক্রিয়াকে সিরিয়ালাইজেশন বলা হয়।

StringViewXml = XMLString(মান); // 1C মান থেকে XML পান
Value1C = XMLValue(Type("DirectoryLink.Nomenclature"),TypeStringXml); // XML স্ট্রিং থেকে 1C মান পান, আপনাকে অবশ্যই 1C প্রকারটি নির্দিষ্ট করতে হবে যা গ্রহণ করা উচিত

3. যেকোনো 1C বস্তুকে একটি স্ট্রিংয়ে রূপান্তর করার জন্য 1C প্ল্যাটফর্মের নিজস্ব উপায় রয়েছে। এটি সংস্করণ 1C 7.7 থেকে স্থানান্তরিত হয়েছে। এই বিন্যাসটি অন্যান্য প্রোগ্রাম দ্বারা বোঝা যায় না, তবে অন্যান্য 1C এটি বুঝতে পারে, যা 1C ডেটাবেসের মধ্যে বিনিময়ের জন্য এটি ব্যবহার করা সহজ করে তোলে।

সারি = ValueInRowInt(Value1C); // মান 1C থেকে স্ট্রিং 1C পান
ValueVFile("C:\MyFile.txt", Value1C); //অন্য বিকল্প, আমরা 1C মান থেকে একটি সংরক্ষিত স্ট্রিং সহ একটি ফাইল পাই
Value1C = ValueFromStringInt(String); // লাইন 1C থেকে ফিরে
Value1C = ValueFile("C:\MyFile.txt"); // ফাইল থেকে ফিরে

ফর্মে 1C লাইন সম্পাদনা করা হচ্ছে

1C ভাষার একটি প্রোগ্রামে 1C স্ট্রিংগুলির সাথে কাজ করার পাশাপাশি, অবশ্যই আমি চাই যে ব্যবহারকারী সেগুলি সম্পাদনা করতে সক্ষম হন। এর জন্য বেশ কয়েকটি সম্ভাবনা রয়েছে:

1. সবচেয়ে সহজ উপায় হল চাহিদা অনুযায়ী 1C লাইনের প্রবেশের অনুরোধ করা। এই পদ্ধতিটি 1C প্রোগ্রামিং শেখানোর সময় ব্যবহৃত হয়;

পরিবর্তনশীল = "";
সারি = EnterValue(ভেরিয়েবল, "সম্পূর্ণ নাম লিখুন");

2. একটি 1C অবজেক্ট (ডিরেক্টরি/ডকুমেন্ট) বা ফর্মের বিশদ বিবরণ (দেখুন) প্রদর্শন করতে, একটি ইনপুট ক্ষেত্র প্রায়শই ব্যবহৃত হয়। ব্যবহারকারীর সম্পাদনা ক্ষেত্রগুলির সাথে কাজ করার জন্য এটি 1C-তে সবচেয়ে সাধারণ সরঞ্জাম।

3. ইনপুট ক্ষেত্রের ক্ষমতাগুলি প্রসারিত করা যেতে পারে (ইনপুট ক্ষেত্রের বৈশিষ্ট্যগুলি দেখুন, এটিতে ডান ক্লিক করুন, আরও বিশদ বিবরণ):

  • চেকবক্স মাল্টিলাইন এডিটিং মোড
  • উন্নত সম্পাদনা চেকবক্স (পূর্ববর্তী চেকবক্সটি চেক করা থাকলে উপলব্ধ)
  • চেকবক্স পাসওয়ার্ড মোড (দেখুন)।

4. ইনপুট ক্ষেত্রের সমস্ত ক্ষমতা আপনার জন্য যথেষ্ট না হলে, একটি অন্তর্নির্মিত সম্পাদক আছে। ফর্মে এটি যোগ করতে, আপনাকে ফর্ম/ইনসার্ট কন্ট্রোল মেনুতে ক্ষেত্র যোগ করতে হবে পাঠ্য নথি. এর বৈশিষ্ট্যগুলিতে আপনি এটির অপারেটিং মোড - এক্সটেনশন সম্পত্তি নির্দিষ্ট করতে পারেন।

একটি পাঠ্য নথি ক্ষেত্র সরাসরি ডেটার সাথে যুক্ত করা যাবে না। ফর্মের OnOpen() ইভেন্ট হ্যান্ডলারে একটি ফাংশন লিখতে হবে (দেখুন):

Form Elements.ElementNameTextDocumentField.SetText(StringValue); //এখানে ValueString হল টেক্সট গৃহীত, উদাহরণস্বরূপ, অ্যাট্রিবিউট থেকে

এবং সেভ হ্যান্ডলারে - উদাহরণস্বরূপ, সেভ বোতামে - একটি সংরক্ষণ যোগ করুন:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //Valueএই লাইনটি হল অ্যাট্রিবিউট যেখানে আমরা মান সংরক্ষণ করি

5. 1C সংস্করণ 8.2.11, ইন নিয়ন্ত্রিত ফর্ম, হাজির নতুন সুযোগ 1C লাইন উপস্থাপনা - বিন্যাসিত নথি ক্ষেত্র।


একটি পাঠ্য নথির ক্ষেত্রের অনুরূপ, এটি খোলার সময় আপনাকে অবশ্যই এটি সেট করতে হবে এবং প্রোগ্রাম ব্যবহার করে এটি সংরক্ষণ করার সময় এটি লিখতে হবে।

  • 1C অবজেক্টে যার ফর্ম আমরা তৈরি করছি (ডিরেক্টরি, ডকুমেন্ট, প্রসেসিং, ইত্যাদি) - ভ্যালু স্টোরেজ টাইপের সাথে একটি অ্যাট্রিবিউট যোগ করুন
  • OnReadOnServer() ফাংশনে আমরা অ্যাট্রিবিউট থেকে টেক্সট সেট করি

    //এখানে অ্যাট্রিবিউট হল 1C অবজেক্টের যোগ করা অ্যাট্রিবিউট
    //এখানে FormattedDocument হল সম্পাদনার জন্য ফর্মের ক্ষেত্রের নাম
    &অনসার্ভার

    ফরম্যাটেড ডকুমেন্ট = CurrentObject.Attributes.Get();
    প্রক্রিয়া শেষ

  • BeforeWritingOnServer() ফাংশনে বা বোতাম ব্যবহার করে, আমরা ফিল্ড থেকে পাঠ্য লিখব

    &অনসার্ভার
    পদ্ধতি যখন ReadingOnServer(CurrentObject)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    প্রক্রিয়া শেষ

থ্রু দ্য লুকিং গ্লাস থেকে নোট

08/18/2014 স্ট্রিংগুলির সাথে কাজ করার জন্য নতুন ফাংশন

8.3.6.1977 সংস্করণে বাস্তবায়িত।

আমরা স্ট্রিংগুলির সাথে কাজ করার জন্য ডিজাইন করা ফাংশনগুলির সেটটি প্রসারিত করেছি। স্ট্রিং ডেটা পার্স করার জন্য আপনাকে আরও উন্নত সরঞ্জাম দেওয়ার জন্য আমরা এটি করেছি। নতুন ফাংশনগুলি পাঠ্য বিশ্লেষণের প্রযুক্তিগত কাজে সুবিধাজনক এবং দরকারী হবে। টেক্সট পার্সিং সংক্রান্ত কাজে যা ফরম্যাটেড আকারে ডেটা ধারণ করে। এটি হতে পারে সরঞ্জাম থেকে প্রাপ্ত কিছু ফাইলের বিশ্লেষণ বা, উদাহরণস্বরূপ, একটি প্রযুক্তিগত লগের বিশ্লেষণ।

আপনি আগে নতুন ফাংশন সঞ্চালন যে সমস্ত কর্ম সঞ্চালন করতে পারে. একটি অন্তর্নির্মিত ভাষায় লিখিত কম বা কম জটিল অ্যালগরিদম ব্যবহার করে। অতএব, নতুন ফাংশন আপনাকে মৌলিকভাবে নতুন ক্ষমতা দেয় না। যাইহোক, তারা আপনাকে কোডের পরিমাণ কমাতে এবং কোডটিকে সহজ এবং আরও বোধগম্য করার অনুমতি দেয়। তদতিরিক্ত, তারা আপনাকে ক্রিয়া সম্পাদনের গতি বাড়ানোর অনুমতি দেয়। কারণ প্ল্যাটফর্মে বাস্তবায়িত ফাংশনগুলি অবশ্যই একটি বিল্ট-ইন ভাষায় লেখা অনুরূপ অ্যালগরিদমের চেয়ে দ্রুত কাজ করে।

ফরম্যাটিং ফাংশন StrTemplate()

এই ফাংশন একটি স্ট্রিং মধ্যে পরামিতি প্রতিস্থাপন. এই ধরনের রূপান্তরের প্রয়োজন প্রায়ই দেখা দেয়, উদাহরণস্বরূপ, সতর্কতা বার্তা প্রদর্শন করার সময়। এই ফাংশনের জন্য সিনট্যাক্স নিম্নরূপ:

StrTemplate(<Шаблон>, <Значение1-Значение10>)

<Шаблон>- এটি সেই স্ট্রিং যা আপনাকে পরামিতি উপস্থাপনাগুলি প্রতিস্থাপন করতে হবে।

<Значение1> , ... <Значение10>- এগুলি পরামিতি (সর্বোচ্চ দশ), যার উপস্থাপনাগুলি অবশ্যই স্ট্রিংয়ে প্রতিস্থাপিত হবে৷

টেমপ্লেটের একটি নির্দিষ্ট স্থান নির্দেশ করতে যেখানে আপনি প্রতিস্থাপন করতে চান, আপনাকে %1, ... %10 এর মতো মার্কার ব্যবহার করতে হবে। টেমপ্লেটের সাথে জড়িত চিহ্নিতকারীর সংখ্যা এবং মান ধারণকারী পরামিতিগুলির সংখ্যা অবশ্যই মিলতে হবে।

উদাহরণস্বরূপ, এই জাতীয় অপারেটর কার্যকর করার ফলাফল:

একটি লাইন থাকবে:

লাইন 2-এ ডেটা ত্রুটি (তারিখের প্রকার প্রয়োজন)

স্ট্রিংগুলির সাথে কাজ করার জন্য কাজ StrCompare()

এই ফাংশন একটি কেস-সংবেদনশীল পদ্ধতিতে দুটি স্ট্রিং তুলনা করে। উদাহরণস্বরূপ, এই মত:

আপনি অবজেক্ট ব্যবহার করে আগে একই ক্রিয়া সম্পাদন করতে পারেন মূল্যবোধের তুলনা:

তবে, নতুন বৈশিষ্ট্য ব্যবহার করা সহজ দেখায়। এবং এই ছাড়াও, একটি ফাংশন, একটি বস্তুর বিপরীতে মূল্যবোধের তুলনা, পাতলা ক্লায়েন্ট এবং ওয়েব ক্লায়েন্ট উভয় ক্ষেত্রেই কাজ করে।

StrStartsWith(), StrEndsAt() স্ট্রিংগুলির সাথে কাজ করার জন্য ফাংশন

এই ফাংশনগুলি নির্ধারণ করে যে একটি স্ট্রিং একটি নির্দিষ্ট সাবস্ট্রিং দিয়ে শুরু হয় বা একটি স্ট্রিং একটি নির্দিষ্ট সাবস্ট্রিং দিয়ে শেষ হয় কিনা। এই ফাংশনগুলির জন্য অ্যালগরিদম একটি এমবেডেড ভাষায় প্রয়োগ করা কঠিন নয়, তবে তাদের উপস্থিতি আপনাকে পরিষ্কার এবং আরও বোধগম্য কোড লিখতে দেয়। এবং তারা দ্রুত কাজ করে।

উদাহরণস্বরূপ, অপারেটরে তাদের ব্যবহার করা সুবিধাজনক যদি:

স্ট্রিংগুলির সাথে কাজ করার জন্য কাজগুলি StrDivide(), StrConnect()

এই ফাংশনগুলি একটি নির্দিষ্ট ডিলিমিটার ব্যবহার করে একটি স্ট্রিংকে অংশে বিভক্ত করে। অথবা তদ্বিপরীত, তারা একাধিক লাইন একত্রিত করে, তাদের মধ্যে নির্বাচিত বিভাজক সন্নিবেশ করান। তারা লগ এবং প্রযুক্তিগত জার্নাল তৈরি বা বিশ্লেষণের জন্য সুবিধাজনক। উদাহরণস্বরূপ, আপনি আরও বিশ্লেষণের জন্য উপযুক্ত অংশগুলিতে একটি প্রযুক্তিগত লগ এন্ট্রিকে সহজেই পার্স করতে পারেন:

স্ট্রিং StrFind() এর সাথে কাজ করার জন্য ফাংশন

পুরানো ফাংশনের পরিবর্তে খুঁজুন()আমরা বাস্তবায়ন করেছি নতুন বৈশিষ্ট্য, যার অতিরিক্ত বৈশিষ্ট্য রয়েছে:

  • বিভিন্ন দিকে অনুসন্ধান করুন (শুরু থেকে, শেষ থেকে);
  • একটি নির্দিষ্ট অবস্থান থেকে অনুসন্ধান;
  • একটি নির্দিষ্ট সংখ্যা (দ্বিতীয়, তৃতীয়, ইত্যাদি) সহ একটি ঘটনার জন্য অনুসন্ধান করুন।

আসলে, এটি পুরানো ফাংশনের ক্ষমতার নকল করে। এটি পুরানো সংস্করণগুলিতে সংকলিত মডিউলগুলির সাথে সামঞ্জস্য বজায় রাখার জন্য করা হয়। পুরানো ফাংশন খুঁজুন()এটি আবার ব্যবহার না করার পরামর্শ দেওয়া হয়।

নীচে নতুন অনুসন্ধান ক্ষমতা ব্যবহার করে একটি উদাহরণ। যখন আপনি একটি আনুষ্ঠানিক স্ট্রিং এর শেষ অংশের প্রয়োজন, যেমন একটি URL-এ সম্পূর্ণ ফাইলের নাম প্রয়োজন তখন বিপরীত অনুসন্ধানটি দরকারী। এবং একটি নির্দিষ্ট অবস্থান থেকে অনুসন্ধান করা সেই ক্ষেত্রে সাহায্য করে যেখানে আপনাকে একটি পরিচিত অংশে অনুসন্ধান করতে হবে, পুরো লাইনে নয়।

8.3.6.1977 সংস্করণে বাস্তবায়িত।

আমরা স্ট্রিংগুলির সাথে কাজ করার জন্য ডিজাইন করা ফাংশনগুলির সেটটি প্রসারিত করেছি। স্ট্রিং ডেটা পার্স করার জন্য আপনাকে আরও উন্নত সরঞ্জাম দেওয়ার জন্য আমরা এটি করেছি। নতুন ফাংশনগুলি পাঠ্য বিশ্লেষণের প্রযুক্তিগত কাজে সুবিধাজনক এবং দরকারী হবে। টেক্সট পার্সিং সংক্রান্ত কাজে যা ফরম্যাটেড আকারে ডেটা ধারণ করে। এটি হতে পারে সরঞ্জাম থেকে প্রাপ্ত কিছু ফাইলের বিশ্লেষণ বা, উদাহরণস্বরূপ, একটি প্রযুক্তিগত লগের বিশ্লেষণ।

আপনি আগে নতুন ফাংশন সঞ্চালন যে সমস্ত কর্ম সঞ্চালন করতে পারে. একটি অন্তর্নির্মিত ভাষায় লিখিত কম বা কম জটিল অ্যালগরিদম ব্যবহার করে। অতএব, নতুন ফাংশন আপনাকে মৌলিকভাবে নতুন ক্ষমতা দেয় না। যাইহোক, তারা আপনাকে কোডের পরিমাণ কমাতে এবং কোডটিকে সহজ এবং আরও বোধগম্য করার অনুমতি দেয়। তদতিরিক্ত, তারা আপনাকে ক্রিয়া সম্পাদনের গতি বাড়ানোর অনুমতি দেয়। কারণ প্ল্যাটফর্মে বাস্তবায়িত ফাংশনগুলি অবশ্যই একটি বিল্ট-ইন ভাষায় লেখা অনুরূপ অ্যালগরিদমের চেয়ে দ্রুত কাজ করে।

ফরম্যাটিং ফাংশন StrTemplate()

এই ফাংশন একটি স্ট্রিং মধ্যে পরামিতি প্রতিস্থাপন. এই ধরনের রূপান্তরের প্রয়োজন প্রায়ই দেখা দেয়, উদাহরণস্বরূপ, সতর্কতা বার্তা প্রদর্শন করার সময়। এই ফাংশনের জন্য সিনট্যাক্স নিম্নরূপ:

StrTemplate(<Шаблон>, <Значение1-Значение10>)

<Шаблон>- এটি সেই স্ট্রিং যা আপনাকে পরামিতি উপস্থাপনাগুলি প্রতিস্থাপন করতে হবে।

<Значение1> , ... <Значение10>- এগুলি পরামিতি (সর্বোচ্চ দশ), যার উপস্থাপনাগুলি অবশ্যই স্ট্রিংয়ে প্রতিস্থাপিত হবে৷

টেমপ্লেটের একটি নির্দিষ্ট স্থান নির্দেশ করতে যেখানে আপনি প্রতিস্থাপন করতে চান, আপনাকে %1, ... %10 এর মতো মার্কার ব্যবহার করতে হবে। টেমপ্লেটের সাথে জড়িত চিহ্নিতকারীর সংখ্যা এবং মান ধারণকারী পরামিতিগুলির সংখ্যা অবশ্যই মিলতে হবে।

উদাহরণস্বরূপ, এই জাতীয় অপারেটর কার্যকর করার ফলাফল:

একটি লাইন থাকবে:

লাইন 2-এ ডেটা ত্রুটি (তারিখের প্রকার প্রয়োজন)

স্ট্রিংগুলির সাথে কাজ করার জন্য কাজ StrCompare()

এই ফাংশন একটি কেস-সংবেদনশীল পদ্ধতিতে দুটি স্ট্রিং তুলনা করে। উদাহরণস্বরূপ, এই মত:

আপনি মান তুলনা বস্তু ব্যবহার করে আগে একই ক্রিয়া সম্পাদন করতে পারেন:

তবে, নতুন বৈশিষ্ট্য ব্যবহার করা সহজ দেখায়। এবং এর পাশাপাশি, ফাংশন, মান তুলনা বস্তুর বিপরীতে, পাতলা ক্লায়েন্ট এবং ওয়েব ক্লায়েন্ট উভয় ক্ষেত্রেই কাজ করে।

StrStartsWith(), StrEndsAt() স্ট্রিংগুলির সাথে কাজ করার জন্য ফাংশন

এই ফাংশনগুলি নির্ধারণ করে যে একটি স্ট্রিং একটি নির্দিষ্ট সাবস্ট্রিং দিয়ে শুরু হয় বা একটি স্ট্রিং একটি নির্দিষ্ট সাবস্ট্রিং দিয়ে শেষ হয় কিনা। এই ফাংশনগুলির জন্য অ্যালগরিদম একটি এমবেডেড ভাষায় প্রয়োগ করা কঠিন নয়, তবে তাদের উপস্থিতি আপনাকে পরিষ্কার এবং আরও বোধগম্য কোড লিখতে দেয়। এবং তারা দ্রুত কাজ করে।

উদাহরণস্বরূপ, তারা If বিবৃতিতে ব্যবহার করা সুবিধাজনক:

স্ট্রিংগুলির সাথে কাজ করার জন্য কাজগুলি StrDivide(), StrConnect()

এই ফাংশনগুলি একটি নির্দিষ্ট ডিলিমিটার ব্যবহার করে একটি স্ট্রিংকে অংশে বিভক্ত করে। অথবা তদ্বিপরীত, তারা একাধিক লাইন একত্রিত করে, তাদের মধ্যে নির্বাচিত বিভাজক সন্নিবেশ করান। তারা লগ এবং প্রযুক্তিগত জার্নাল তৈরি বা বিশ্লেষণের জন্য সুবিধাজনক। উদাহরণস্বরূপ, আপনি আরও বিশ্লেষণের জন্য উপযুক্ত অংশগুলিতে একটি প্রযুক্তিগত লগ এন্ট্রিকে সহজেই পার্স করতে পারেন:

স্ট্রিং StrFind() এর সাথে কাজ করার জন্য ফাংশন

পুরানো Find() ফাংশনের পরিবর্তে, আমরা একটি নতুন ফাংশন প্রয়োগ করেছি যার অতিরিক্ত ক্ষমতা রয়েছে:

  • বিভিন্ন দিকে অনুসন্ধান করুন (শুরু থেকে, শেষ থেকে);
  • একটি নির্দিষ্ট অবস্থান থেকে অনুসন্ধান;
  • একটি নির্দিষ্ট সংখ্যা (দ্বিতীয়, তৃতীয়, ইত্যাদি) সহ একটি ঘটনার জন্য অনুসন্ধান করুন।

আসলে, এটি পুরানো ফাংশনের ক্ষমতার নকল করে। এটি পুরানো সংস্করণগুলিতে সংকলিত মডিউলগুলির সাথে সামঞ্জস্য বজায় রাখার জন্য করা হয়। এটি সুপারিশ করা হয় যে আপনি আর পুরানো Find() ফাংশন ব্যবহার করবেন না।

নীচে নতুন অনুসন্ধান ক্ষমতা ব্যবহার করে একটি উদাহরণ। যখন আপনি একটি আনুষ্ঠানিক স্ট্রিং এর শেষ অংশের প্রয়োজন, যেমন একটি URL-এ সম্পূর্ণ ফাইলের নাম প্রয়োজন তখন বিপরীত অনুসন্ধানটি দরকারী। এবং একটি নির্দিষ্ট অবস্থান থেকে অনুসন্ধান করা সেই ক্ষেত্রে সাহায্য করে যেখানে আপনাকে একটি পরিচিত অংশে অনুসন্ধান করতে হবে, পুরো লাইনে নয়।

কিভাবে কাজ করতে হয়