C# мисоллар


листинг. Координаталар каталогидан иборат матнли файл мазмуни



Download 0,91 Mb.
bet37/52
Sana24.02.2022
Hajmi0,91 Mb.
#215341
1   ...   33   34   35   36   37   38   39   40   ...   52
Bog'liq
C# windows app form

4.7 листинг. Координаталар каталогидан иборат матнли файл мазмуни

167.5 437.5 13.8 120.0
217.5 437.5 62.5 131.2
182.5 413.8 35.0 100
210 410 62.5 101.2
240 415 90 113.8
162.5 387.5 21.2 68.8
191.2 372.5 52.5 61.2
211.2 390 67.5 82.5
240 388.8 96.5 88.8
160 357.5 26.2 40
225 367.5 86.2 65
161.2 341.2 31.2 25
187.5 340 56.2 28.8
212.5 337.5 81.2 32.5
241.2 341.2 108.8 42.5

Ушбу файлда бўш сатрлар ҳам мавжуд бўлиб, координата қиймати сифатида бутун ва ҳақиқий сонлардан фойдаланилган. Ҳақиқий типдаги сонларда бутун ва каср қисмини ажратишда нуқта ёки вергулдан фойдаланилган. Сонлар ўртасида эса бир нечта пробел ёки табуляция символидан фойдаланилган.


Ушбу масалани ҳал қилиш учун VS 2012 муҳитини ишга туширамиз. Сўнгра янги Windows Forms Application (Приложение Windows Forms) лойиҳасини ҳосил қилиб, унга Koordinata номини берамиз. Кейинги қадамда ToolBox панелидан TextBox бошқарув элементини танлаб, уни формага жойлаштирамиз. Сўнгра TextBox бошқарув элементининг MultiLine хусусияти қийматига True ни берамиз. Қуйидаги 4.8-листингда ушбу дастурнинг коди келтирилган:

4.8 листинг. Координаталар каталогини матнли файлдан ўқиб олиш

// координаталар каталогидан иборат булшаг матнли файлдан укиш.
// Ушбу каталогда хар бир нукта туррта координата оркали ифодаланган:
// X, Y, U ва V. Ушбу туртта сон ихтиёрий тартибда жойлашган булиши мумкин:
// туртта координата битта сатрда ёки иккитадан координата иккита сатрд,
// ёки "1 + 3", ёки ихтиёрий бошка комбинацич. Аммо хар бир нуктага мос
// координатлар сони туртта булиши шарт. Бунда, координаталарни ажратувчи
// символлар, бутун ва каср кисмини ажратувчи нукта(вергул) символларидан
// фойдаланиши мумкин. Сонлар уртасида ихтиёрий сонда пробеллар ёки табуляция
// ('\t') символи мавжуд булиши мумкин. Фойдаланувчи координаталар орасида буш
// сатрлардан фойдаланиши хам мумкин. Дастур оркали ушбу координаталарни
// формадаги матнли майдонга укиб олиш лозим.

using System;


using System.Windows.Forms;

namespace ВводКаталогаКоординат


{
public partial class Form1 : Form
{
// Координаталар жойлашган массивни эълон киламиз
Double[] X, Y, U, V;
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)


{
var AllText = String.Empty;
try
{
var JoriyKatalog = System.IO.Directory.GetCurrentDirectory();
// Файлни сатрий узгарувчига укиб оламиз:
AllText = System.IO.File.ReadAllText(JoriyKatalog + @"\convert1.txt");
}
catch (System.IO.FileNotFoundException Holat)
{
MessageBox.Show(
"Бундай файл мавжуд эмас" + "\n" + Holat.Message,
"Хатолик", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
}
catch (Exception Holat)
{
// Бошка турдаги хатолик:
MessageBox.Show(Holat.Message, "Хатолик",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}

// Матндаги барча нукталарни вергулга алмаштирирамиз:


AllText = AllText.Replace(".", ",");
// Сапаратора сифатида: '\t'),
// кареткани узгартириш '\r', '\n' ва пробеллар ' ':
Char[] Separator = { '\t', '\r', '\n', ' ' };
var Koordinatalar = AllText.Split(Separator,
StringSplitOptions.RemoveEmptyEntries);
// Энди Koordinatalar() массивининг хар бир элементида битта координата мавжуд
var n = Koordinatalar.Length; // - массив элементлари сони
var z = n % 4;
// % - n ни 4 га булгандаги колдик,
if (z != 0) MessageBox.Show(
"Координаталар сони 4 га каррали эмас");
// Массив улчовини аниклаш:
X = new Double[n / 4];
U = new Double[n / 4];
Y = new Double[n / 4];
V = new Double[n / 4];
// Сатр шаклидаги сон типини узгартирамиз:
Boolean A, B, C, D;
var j = 0; // - Koordinatalar() массивидаги сонлар
for (var i = 0; i <= n / 4 - 1; i++)
{ // Сатрни сонга утказиш:
A = Double.TryParse(Koordinatalar[j], out X[i]); j = j + 1;
B = Double.TryParse(Koordinatalar[j], out Y[i]); j = j + 1;
C = Double.TryParse(Koordinatalar[j], out U[i]); j = j + 1;
D = Double.TryParse(Koordinatalar[j], out V[i]); j = j + 1;
// Агар типга утказишда бирор типга утказишда TryParse да хатолик юзага келса:
if ((A && B && C && D) == false)
MessageBox.Show(String.Format(
"{0} сатрда - сон эмас !", i + 1),
"Хатолик", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
}
this.Text = String.Format("Нукталар сони = {0};", n / 4);
textBox1.Multiline = true; textBox1.Clear();
// Циклда координатлани матнли майдонга утказамиз:
for (var i = 0; i <= n / 4 - 1; i++)
{
textBox1.AppendText(String.Format("X = {0,5:F1}; " +
"Y = {1,5:F1}; U = {2,5:F1}; V = {3,5:F1};" + "\n",
X[i], Y[i], U[i], V[i]));
// "{0,5:F1}" формат: нолинчи элементни унг томон буйича мослаштириш
// ва нуктадан кейинги 5 та ракамдан фойдаланиш зарурлигини англатади
}
}
}
}



Форма ишга тушаётганда координаталар каталоги ўқиб олинади. Аввало жорий папкадаги convert1.txt файли AllText ўзгарувчисига юклаб олинади.

Download 0,91 Mb.

Do'stlaringiz bilan baham:
1   ...   33   34   35   36   37   38   39   40   ...   52




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish