Файл, фолдерыг харж, цэгцлэх. Pages-д өөр өөр файлын форматыг импортлох, экспортлох

Оршил

Энэ нийтлэлд би өөрийн програмыг тодорхой файлын төрөлтэй хэрхэн холбох талаар дэлгэрэнгүй тайлбарлах болно. Ингэснээр та файл дээр давхар товшсон үед энэ програм ажиллаж, сонгосон файлаа нээх болно.

Файлуудыг програмтай холбох тусгай бүрэлдэхүүн хэсэг, модулиуд байдаг, жишээлбэл . Үүнийг гараар хэрхэн яаж хийхийг би нийтлэлд тайлбарлах болно.

Энэ бүхэн хэрхэн ажилладаг вэ?

Ерөнхийдөө бүх зүйл маш энгийнээр ажилладаг. Үүнд шаардлагатай бүх мэдээллийг тодорхой салбар дахь бүртгэлд оруулсан болно. Бүртгэлийн засварлагчийг нээгээд (Эхлүүлэх -> Ажиллуулах -> regedit) HKEY_CLASSES_ROOT салбар руу очно уу. Тэнд та системд байгаа бүх өргөтгөлүүдийг харах болно. Тэнд та .txt болон .bmp болон бусад олон танил өргөтгөлүүдийг олох болно.

.jpg өргөтгөлийг харцгаая. Тэнд надад OpenWithProgids салбар байгаа бөгөөд дотор нь REG_SZ төрлийн ACDSee Pro 2.0.jpg байгаа. Дараа нь HKEY_CLASSES_ROOT\ACDSee Pro 2.0.jpg салбарыг дагана уу. Энэ нь хэд хэдэн салбартай. Бидэнд хэрэгтэй зүйлсийг харцгаая: DefaultIcon - Explorer дээр файлыг харуулах дүрсний зам; shell\Open\command - файл дээр 2 дарахад ямар програм нээх вэ.

Програмыг ажиллуулах үед нээгдсэн файлын замыг параметр болгон дамжуулдаг гэдгийг та мэдэх хэрэгтэй. Тиймээс энэ параметрийг боловсруулах шаардлагатай болно.

Хэрэгжилт

Файлыг өргөтгөлтэй болго .dev. Бүртгэлд шаардлагатай утгыг нэмэх процедурыг бичье. Нэмэхээ бүү мартаарайБүртгэлтэй ажиллахад зориулсан бүртгэлийн модулийн хэрэглээ хэсэгт.

ашигладагБүртгэл, ShlObj;
...
varБүртгэл: TRregistry;
...
журамХамтрагч;
varс: мөр;
Эхлэх
Reg:=TRregistry.Create; // үүсгэх
// эх салбарыг зааж өгнө

Reg.OpenKey(".dev\OpenWithProgids\" , үнэн);
Reg.WriteString("TestApplication.dev" , "");

Reg.OpenKey( "\TestApplication.dev\DefaultIcon\", үнэн);
s:=Application.ExeName+",0";
Reg.WriteString("", s);

Reg.OpenKey( "\TestApplication.dev\Shell\Open\", үнэн);
Reg.WriteString("", "TestApplication дээр нээх");

Reg.OpenKey("команд\" , үнэн);
s:="""+Application.ExeName+"" "%1"";
Reg.WriteString("", s);

тэг, тэг);
Төгсгөл;

Чиг үүрэг Нээлттэй түлхүүрэхний параметрт заасан салбарыг нээнэ. Хоёрдахь параметрийг True гэж тохируулсан бөгөөд хэрэв байхгүй бол салбарыг үүсгэнэ.

Дараа нь s хувьсагч дээр бид дүрс рүү хүрэх замыг үүсгэдэг. Энэ тохиолдолд exe програмаас 0 индекс бүхий дүрсийг авна. Жишээлбэл, та аппликешнд өөр дүрс нэмж, програмын файлд ашиглах боломжтой, гэхдээ та .ico файлын замыг зааж өгч болно.

Би өөрөө TestApplication.dev-г сонгосон. Та энэ сэдвийн нэрийг өөрөө гаргаж болно. Програм нь хэд хэдэн өргөтгөлтэй ажиллах боломжтой тул ихэвчлэн програмын нэрийг бичиж, өргөтгөлийг нэмдэг.

Бүртгэлд өгөгдөл нэмсний дараа процедурыг дуудна SHChangeNotifyИнгэснээр дүрсүүд шинэчлэгдэж, тохиргоонууд хэрэгжинэ.

журам DeleteAssociate;
Эхлэх
Reg:=TRregistry.Create;
Reg.RootKey:= HKEY_CLASSES_ROOT;

Reg.DeleteKey(".dev" );
reg.DeleteKey("TestApplication.dev" );

SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, тэг, тэг);
Төгсгөл;

Энд бүх зүйл илүү хялбар байдаг - үүсгэсэн салбаруудыг устгахад л хангалттай.

Ачааллыг боловсруулах

Одоо зөвхөн програмыг ачаалаад зогсохгүй файлыг нээхийн тулд параметрийг боловсруулах л үлдлээ. Бүх зүйл маш энгийн, маягт үүсгэх үед бид үүнийг функцээр уншдаг ParamCountпараметрийн тоо, хэрэв тэдгээрийн тоо 0 биш бол бид ачаалах функцийг дуудаж, энэ функцийн оролтын параметр болгон нээх шаардлагатай файлын замыг дамжуулдаг. Маягт дээр хоёр удаа товшоод маягт үүсгэх зохицуулагч үүсгэнэ үү.

журам TForm1.FormCreate(Илгээгч: TObject);
Эхлэх
хэрэв ParamCount<> 0 тэгээдАчаалах(ParamStr(1));
Төгсгөл;

За, та бас файл байршуулах функцийг бичих хэрэгтэй. Маягт руу TMemo нэмнэ үү.

функцАчаалах(FНэр: мөр): логик;
Эхлэх
Form1.Memo1.Lines.LoadFromFile(FName);
Төгсгөл;

Таны аппликешнд файл нээх боломжгүй, нээлтийн үр дүнг буцаах боломжгүй тул функцийг боловсруулахад илүү төвөгтэй байх магадлалтай. Энэ тохиолдолд би үүнийг хийхгүй.

Маягтанд хоёр TB товчлуур нэмнэ үү. Эхний дээр дарснаар холбоог гүйцэтгэх ба хоёр дахь дээр дарснаар холбоо арилна.

Эхний товчлуур дээр давхар товшоод процедурыг энэ маягт руу оруулна уу.

журам TForm1.Button1Click(Илгээгч: TObject);
Эхлэх
Хамтрагч;
Төгсгөл;

Бид дээр дурдсантай ижил алхмуудыг гүйцэтгэдэг, гэхдээ хоёр дахь товчлуурын хувьд.

журам TForm1.Button2Click(Илгээгч: TObject);
Эхлэх
DeleteAssociate;
Төгсгөл;

За одоо бүх зүйл дууслаа. Та .dev өргөтгөлтэй файл нээхийг оролдох үед Memo1 нь файлын агуулгыг ачаалах ёстой.

Шаардлага.
Энэ зүйлд заасан үйлдлийг гүйцэтгэхийн тулд та компьютер дээр локал администраторын эрхтэй байх ёстой.
Нийтлэл нь Windows 98/Me/2000/XP/Vista-д хүчинтэй.

Мэдээлэл.
Эхний тохиолдол.
Энэ нь суулгасны дараа тохиолддог шинэ програм, зарим файлууд энэ програмд ​​нээгдэж эхэлдэг. Жишээлбэл, та амьдралынхаа туршид кино үзэж байсан WinAmpмөн нэг өдөр тэд шинэ кодлогч суулгахаар шийдсэн бөгөөд эдгээр кодлогчийг суулгахад тоглуулагч суурилуулсан байв Windows Media Classic. Одоо өргөтгөлтэй файлууд .avi, шинэ тоглуулагчаар нээх, гэхдээ та ашиглан үзэхийг хүсэж байна WinAmp, тиймээс бага зэрэг тохируулга хийцгээе.

Хоёр дахь тохиолдол.
Програмыг устгасны дараа зарим файлууд огт нээгддэггүй. Энэ төрлийн файлд ямар ч програм хуваарилагдаагүй тохиолдолд энэ нь тохиолддог. Иймд ямар программ энэ төрлийн файлыг нээх шаардлагатайг гараар тодорхойлох хэрэгтэй.

Програмд ​​файлын төрлийг оноож байна.
1. Файл дээр хулганы баруун товчийг дарна уу;
2. Цэсний зүйлийг сонгоно уу " Үл хөдлөх хөрөнгө";
3. "Properties" цонхноос "tab" руу очно уу. Нийтлэг байдаг";
4. догол мөрөнд " Өргөдөл", энэ файлыг аль програмаар нээхийг харуулах болно (бидний тохиолдолд энэ нь " Windows Media Classic");
5. "Товч" дээр дарна уу. Өөрчлөх";
6. "Програм сонгох" цонхноос олоод дарна уу шаардлагатай програм(мөн манай тохиолдолд энэ нь " WinAmp");
7. Хайрцагыг чагтална уу " Сонгосон програмыг энэ төрлийн бүх файлд ашиглаарай"хэрэв суулгаагүй бол;


8. "OK" дээр дарна уу;

Одоо өргөтгөлтэй файлууд .avi, -ээр нээгдэнэ WinAmp.

Заримдаа шинэхэн хэрэглэгчид файлыг хэрхэн үргэлж нээлттэй болгох талаар асуудаг тодорхой хөтөлбөр. Та шинэ зураг харагч суулгасан гэж бодъё, гэхдээ та зураг дээр давхар товших үед Windows үүнийг нээдэг хэвээр байна. стандарт хэрэгсэлзургуудыг үзэх.

Яагаад ийм зүйл тохиолддог вэ, Windows нь аль программыг тухайн файлыг нээхийг хэрхэн тодорхойлдог вэ? Энэхүү “ойлголт” нь холбох буюу . Үндсэндээ файлын холбоо нь файлыг холбохоос өөр зүйл биш юм хэрэглээний програмзарим онцлог шинж чанаруудын дагуу, ихэнхдээ өргөтгөлөөр.





Суулгах явцад зарим програмууд бүртгэлд зохих өөрчлөлт оруулснаар файлын холбоог автоматаар өөрчилдөг бөгөөд үүнтэй зэрэгцэн өөрсдийгөө бүртгүүлдэг. контекст цэс Explorer, бусад нь нэг зүйл хийдэг эсвэл огт өөрчлөлт оруулдаггүй. Сүүлчийн тохиолдолд та холбоог өөрөө байгуулж болно.

Windows 7 ба 8-д "Хяналтын самбар" руу очоод "Өгөгдмөл програмууд" хэсгийг олоорой. Нээгдсэн цонхонд та дөрвөн зүйлийг харах болно. Эхнийх нь "Өгөгдмөл програмуудыг тохируулах" дээр дарна уу. Богино скан хийсний дараа системийн хэрэгсэлкомпьютер дээр суулгасан хэрэглэгчийн програмуудын жагсаалтыг харуулах болно.





Редактор дээр үргэлж нээгдэхийн тулд PNG өргөтгөлтэй файлууд хэрэгтэй гэж бодъё. Зүүн самбараас энэ засварлагчийг хулганаар сонгоод "Энэ програмын үндсэн утгыг сонгох" дээр дарна уу. Нээгдсэн цонхон дээр хүссэн өргөтгөлийн нүдийг чагтална, үр дүнг хадгална, одооноос эхлэн PNG өргөтгөлтэй бүх зураг дээр давхар товшсоноор Paint дээр нээгдэнэ.

Энэ арга нь тодорхой хязгаарлалттай гэдгийг хэлэх ёстой. Үнэндээ бол бүгд биш суулгасан програмуудэнэ жагсаалтад гарч ирж болно. Энэ тохиолдолд та эсрэгээр нь хийж болно, өөрөөр хэлбэл өргөтгөлийг програмд ​​"тохируулах" хэрэггүй, харин эсрэгээр.





"Өгөгдмөл програмууд" хэсгээс "Файлын төрөл эсвэл протоколыг тодорхой програмуудтай тааруулах" гэсэн хоёр дахь сонголтыг сонгоно уу. Энэ удаад туслах хэрэгсэл нь хамгийн их ашиглагддаг өргөтгөлүүдийн жагсаалтыг харуулах болно Товч танилцуулгаболон тэдгээртэй холбогдсон програмууд. Бид ч мөн адил хийдэг. Энэ байдлыг төсөөлөөд үз дээ.

Бидэнд скрипт файлуудыг (.bat) хэвийн байдлаар харах боломжтой байдлаар холбоо тогтоох үүрэг өгсөн. текст засварлагч. BAT өргөтгөлийг олоод сонгоод цонхны дээд хэсэгт байрлах "Хөтөлбөрийг өөрчлөх" товчийг дарна уу.





Сонгохыг хүсэх цонх нээгдэнэ зөв програм, Windows 8-д хамгийн эхний санал бол Дэлгүүрээс програм хайх (танигдаагүй өргөтгөл) эсвэл холбогдох програмыг үргэлжлүүлэн ашиглах явдал юм. Үзэхийн тулд бүрэн жагсаалтпрограмуудыг сонгоод "Илүү" дээр товшоод хүссэн програмаа сонгоно уу. Хэрэв энэ жагсаалтад байхгүй бол та стандарт хөтөчөөр дамжуулан гүйцэтгэгдэх файлын замыг өөрөө зааж өгч болно.

Дүгнэлт

Файлын холбоог тохируулснаар та эхлүүлэх ажлыг автоматжуулах боломжтой янз бүрийн төрөлфайлууд, ингэснээр таны компьютер дээрх ажлыг илүү бүтээмжтэй, хурдан болгоно.

Файлын холбоог бий болгох өөр аргууд байдаг. Жишээлбэл, ахисан түвшний хэрэглэгчид тохирох өөрчлөлтийг хийх боломжтой системийн бүртгэл. Дээр дурдсан арга нь хамгийн энгийн бөгөөд тохиромжтой.

Дашрамд хэлэхэд, та Control Panel хэрэгслийг ашиглахгүйгээр холбоо тогтоож болно. Та маргаантай файл дээр хулганы баруун товчийг дараад "Properties" -ийг сонгоод нээгдэх нэмэлт цонхонд файлыг нээхэд шаардлагатай програмыг зааж өгөх хэрэгтэй.

Интернэтээс файл татаж авах үед үйлдлийн систем нь аюулгүй байдлын үүднээс тусгайлан тэмдэглэдэг. Дараа нь, та татаж авсан файлаа нээхийг оролдох үед Windows нь файл нь аюултай гэсэн анхааруулгыг харуулах бөгөөд та үүнийг нээх гэж байгаа гэдгээ тодорхой батлахыг шаарддаг. Идэвхжүүлсэн үед Ухаалаг функцДэлгэц, зарим файлууд ялангуяа зөрүүдээр хаагдсан байдаг. "Татаж авах" лавлах эсвэл өөр хавтас дотор байгаа бүх файл, хавтаснаас ийм түгжээг арилгах арга бий.
Түгжих механизмд өөрөө. Энэ нь бидэнд аль хэдийн танил болсон зүйлсийг ашиглан ажилладаг. Татаж авсан файл бүрийн хувьд өөр өгөгдлийн урсгалыг нэмсэн бөгөөд үүнд параметрүүд орно үйлдлийн системүүнээс үүдэлтэй дэлхийн өргөн сүлжээмөн аюултай байж болно.

Үүнийг шалгахын тулд Windows 10 дээр бид PowerShell хэрэгслийг ашиглаж болно. Татаж авсан файлуудын аль нэгэнд дараах тушаалыг ажиллуулъя:

Барааны файлын нэр - урсгал *

PowerShell-ийг хүссэн хавтсандаа шууд нээх хамгийн хялбар арга бол File цэсний командыг ашиглах явдал юм Windows Explorer 10. "Татаж авах" хавтас руу ороод File - Run руу орно Windows Powershell- Windows Powershell-г ажиллуулна уу:


Дээрх командыг "winaerotweaker.zip" файл дээр ажиллуулъя. Энэ бол миний жишээн дээр тусгайлан татаж авсан Winaero Tweaker програмтай архив юм. Бид тушаалыг гүйцэтгэдэг:

Get-item winaerotweaker.zip -stream *


"-stream *" аргумент нь get-item-д файлын боломжтой бүх урсгалыг харуулахыг хэлдэг. Zone.Identifier нь Windows 10 нь интернетээс татаж авсан файлыг таних өөр мэдээллийн урсгал юм. get-content командыг ашигласнаар бид түүнд юу бичигдсэнийг харж болно:

Get-content winaerotweaker.zip -stream Zone.Identifier


Үндсэндээ энэ нь ердийн ini файл бөгөөд ZoneId параметр нь шийдвэрлэх утгатай байна:

ZoneId=3

Түүний боломжит утгууд:
0 - Файлыг дотоод компьютер дээр үүсгэсэн.
1 - Дотоод сүлжээгээр хүлээн авсан файл
2 - Файлыг итгэмжлэгдсэн интернет бүсээс хүлээн авсан
3 - Файлыг интернетээс хүлээн авсан
4 - Файлыг "аюултай сайтууд" бүсээс хүлээн авсан

Үүний дагуу блокоос гаргахын тулд та ZoneId руу 0 бичих эсвэл Zone.Identifier нэртэй өөр урсгалыг бүрмөсөн устгах хэрэгтэй.

Утгаар GUIТа түүний шинж чанаруудаар дамжуулан файлын түгжээг тайлж болно. Харгалзах хайрцаг байна (орос хувилбарт харилцах цонхонд тохирохгүй байна):

Windows 10 дээр "Татаж авсан файл" хавтсанд байгаа бүх файлын түгжээг хэрхэн тайлах вэ

Хэрэв та олон файл эсвэл бүгдийг нэг дор нээх шаардлагатай бол тэдгээрийн шинж чанарыг нээх нь маш уйтгартай ажил юм. Аз болоход энэ үйлдлийг дахин PowerShell ашиглан хялбаршуулж болно. Зүгээр л тушаалыг ажиллуулна уу:

Dir-Recurse | Түгжээг тайлах-Файл

Мэдээжийн хэрэг, үүнийг хүссэн хавтсанд гүйцэтгэх шаардлагатай. Манай тохиолдолд PowerShell нь Татаж авах хавтсанд аль хэдийн нээлттэй байна. Үүнийг хийцгээе, үүнээс юу гарахыг харцгаая.

Тушаал нь ямар ч гаралтгүйгээр ажилладаг. Өөр өгөгдлийн урсгалыг шалгацгаая:


Өөрөөр хэлбэл Unblock-File команд нь файл бүрээс Zone.Identifier урсгалыг устгадаг.


Бэлэн! Одоо та компьютерийнхээ аль ч хавтсанд байгаа хэд хэдэн файлын түгжээг тайлах шаардлагатай бол юу хийхээ мэдэж байна. Түүнчлэн, энэ заль мэх нь Windows 8/8.1 дээр ажиллах ёстой, гэхдээ би үүнийг одоогоор туршиж чадахгүй байна.

Паскаль хэл нь гадаад төхөөрөмж дээр байрлах мэдээлэлтэй ажиллахад ашигладаг файлын төрлийн өгөгдлийг хуваарилдаг. Энэхүү мэдээлэл нь компьютерийн гадаад санах ойд бий болж, файл гэж нэрлэгддэг тодорхой хэсгийг бүрдүүлдэг. Файлууд нь нэртэй бөгөөд ижил төрлийн элементүүдийн цуглуулга юм. Тэдгээрийг ихэвчлэн их хэмжээний өгөгдөл, урт хугацааны хадгалалт эсвэл ижил мэдээлэлд хэд хэдэн програм руу нэвтрэх боломжийг олгох шаардлагатай тохиолдолд ашигладаг.

Файлуудыг ихэвчлэн физик болон логик гэж хуваадаг. Физик файлууд нь нэртэй бөгөөд зөөврийн зөөвөрлөгч дээр байрладаг бөгөөд логик файлууд нь тэдгээрийг программд төлөөлөх файлын төрлийн хувьсагчууд юм.

Паскаль хэл дээр дараахь зүйлийг ялгадаг. гурван төрлийн файл(файлын хувьсагчийг эхлүүлэх түлхүүр үгсийг хаалтанд дүрсэлсэн):

  • текст файлууд (текст);
  • бичсэн (файл<тип>);
  • бичээгүй (файл).

Бид тус бүрийг хэсэг хугацааны дараа авч үзэх болно. Одоо файлуудтай ажиллах үндсэн үйлдлүүдийг авч үзье.

Файл үүсгэж байна

оноох(<имя файловой переменной>, <имя файла>)

Assign процедур нь файлын төрлийн хувьсагчийг физик файлтай холбодог. Жишээлбэл, та D драйв дээр байрлах Fil хувьсагч болон текст файлын хооронд дараах байдлаар захидал харилцааг үүсгэж болно.

Даалгах(Фил, 'D:\lot.txt')

Унших горим

Дахин тохируулах(<имя файловой переменной>)

Дахин тохируулах процедур нь файлыг унших горимд нээх бөгөөд үүний дараа Унших(<файловая переменная>, <считываемый элемент>) та програмын элементүүдийг дараалан уншиж болно.

Файлын төгсгөл

EOF(<имя файловой переменной>)

Файлын элементүүдийн тоог урьдчилан тогтоодоггүй ч файлын төгсгөлд хэзээ хүрэхийг мэдэх шаардлагатай байдаг. Энэ зорилгоор Паскаль хэлэнд төгсгөлд хүрсэн эсэхийг шалгадаг EOF логик функц байдаг ба хэрэв тийм бол True, үгүй ​​бол худал утгыг авна. Шалгалт нь EOF функцийг нөхцөлт илэрхийлэл болгон ашиглан ихэвчлэн гогцоонд хийгддэг.

Бичлэгийн горим

дахин бичих(<имя файловой переменной>)

Файлыг бичих горимд нээсний дараа та Write(-г ашиглан мэдээллийг элемент тус бүрээр нь бичиж болно.<файловая переменная>, <элемент>).

Файлыг хааж байна

Хаах(<имя файловой переменной>)

Хаах процедур хаагдана нээлттэй файл, мөн параметр болгон тодорхойлсон файлын хувьсагчийг чөлөөлнө.

Файл устгаж байна

Устгах(<имя файловой переменной>)

Устгах процедурыг ашигласнаар та өмнө нь хаасан файлыг гадаад медиагаас устгаж болно.

Файлын нэрийг өөрчлөх

Нэр солих(<имя файловой переменной>, ‘<новое имя файла>’)

Нэрийг нь өөрчлөх нь эхлээд Close товчлуураар хаагдах ёстой физик файлын нэрийг өөрчилнө.

Файл заагч офсет

хайх(<имя файловой переменной>, <номер элемента>)

Seek процедур нь файл дахь заагчийн байрлалыг шаардлагатай элемент рүү тохируулдаг (элементүүдийн дугаарлалт тэгээс эхэлнэ).

Заагчийн байрлалыг тодорхойлох

FilePos(<имя файловой переменной>)

FilePos функц нь утгыг авдаг серийн дугаардуудлага хийх үед заагч байрлах элемент.

Элементүүдийн тоог тодорхойлох

Файлын хэмжээ(<имя файловой переменной>)

FileSize функц нь файлд байгаа бүх элементийн тоог тодорхойлдог.

Текст файлууд

Текст файлууд тэмдэгт (char) ба тэмдэгт мөр (мөр) өгөгдлийн төрлийн элементүүдээс бүрдэж болно. Түлхүүр үгТекст нь файлын хувьсагчийг тусгайлан текст файлтай ажиллахаар үүсгэсэн болохыг харуулж байна:

Var<идентификатор>: Текст;

Текст файлын бүтэц нь тэмдэгтүүдээс бүрдэх мөрүүдийн дараалал юм. Аливаа мөр “мөрийн төгсгөл” тэмдгээр төгсдөг ба файл өөрөө “файлын төгсгөл” тэмдгээр төгсдөг. Паскаль хэл дээрх файлын төгсгөлийг тодорхойлохын тулд EOF функц байдаг бөгөөд мөрийн төгсгөлд - EOLn:

EOLn(<имя файловой переменной>)

Хэрэв мөрийн төгсгөлд хүрвэл (EOLn функц) Үнэн, үгүй ​​бол худал утгыг авна.

Паскаль хэл дээрх файлуудтай ажиллах даалгавруудын жишээ:

1. Бүрэлдэхүүн хэсгүүд нь M массивын элемент болох X файлыг үүсгэ. X файлаас Y файл руу тэгш байрлалтай бүх бүрэлдэхүүн хэсгүүдийг хуулна. Y файлыг уншина уу.
М = (0.1; 5.6; 0.8; 2.4; 7.3; 6.8; 0.5; 2.3;)

const M: бодит массив = (0.1, 5.6, 0.8, 2.4, 7.3, 6.8, 0.5, 2.3);
var
x,y: бодит файл;

n: бодит; би: байт;
Эхлэх
оноох(x,"x.dat");
оноох(y,"y.dat");
дахин бичих(x);
i:=1-ээс 8 хүртэл хийх
бичих(x, M[i]);
хаах(x);
дахин тохируулах(x);
дахин бичих (y);
i:= 1;
EOF(x) биш ч гэсэн эхэлдэг
унших (x, n);
сондгой биш бол (i) дараа нь
бичих (y, n);
i:= i + 1;
Төгсгөл;
хаах(x); хаах(y);
дахин тохируулах(y);
EOF(y) биш ч гэсэн эхэлдэг
унших (y, n);
бичих(n:5:1);
Төгсгөл;
бичих;
хаах(y);
Төгсгөл.

2. Натурал тоог хоосон зайгаар бичсэн файл өгөгдсөн. Тоо бүрийн цифрүүдийн нийлбэрийг харуул.

var
f: char файл;
c: тэмдэгт; нийлбэр, n: үг;

Эхлэх
оноох(f,"nums.txt");
дахин тохируулах(f);
нийлбэр:= 0;
eof(f) биш ч гэсэн эхлэх хэрэгтэй
унших(f,c);

хэрэв в<>"" тэгээд эхэл
val(c, n);
нийлбэр:= нийлбэр + n;
Төгсгөл
өөрөөр эхэлнэ
бичих (нийлбэр: 5);
нийлбэр:= 0
Төгсгөл;
Төгсгөл;

бичих;
Төгсгөл.

3. Сургалтын хуваарь бүхий файлыг өгсөн. Лекц, практик, лабораторийн хичээлийн тоог тодорхойлсон программ бичнэ. Тэдний дугаарыг дэлгэцэн дээр харуул.

var
f: текст;
s:мөр;
i, лекц, дадлага, лаборатори: байт;
Эхлэх
оноох(f,"хичээл.txt");
дахин тохируулах(f);
lect:= 0;
дадлага хийх:= 0;
лаборатори:= 0;
Eof(f) биш ч гэсэн эхэлдэг
readln(f,s);
i:= pos("лекц.",s);
Хэрвээ би<>0 дараа нь lect:= lect + 1
өөрөөр эхэлнэ
i:= pos("дадлага хийх.",s);
Хэрвээ би<>0 дараа нь дадлага хий:= дадлага + 1
өөрөөр эхэлнэ
i:= pos("lab.",s);
Хэрвээ би<>0 дараа нь лаборатори:= лаборатори + 1
Төгсгөл;
Төгсгөл;
Төгсгөл;
хаах(f);
writeln("Лекц: ", лекц);
writeln("Практик: ", дадлага);
writeln("Лаборатори: ", лаборатори);
Төгсгөл.

4. Латин том үсгээс бүрдсэн текстийн мөр өгөгдсөн. Та өгөгдсөн мөрөнд хамгийн их тохиолддог гурван үсгийн дэд мөрийг олох хэрэгтэй. Жишээлбэл, DEFDEFABCABCZABCDEFDEF мөрөнд DEF дэд мөр ихэвчлэн (4 удаа) тохиолддог. Оролтын файл нь текстийн мөрийг агуулна. Гаралтын файл нь нэг дугаарыг агуулсан байх ёстой - хамгийн их тохиолддог гурван үсгийн дэд мөрийн тохиолдлын тоо. Эх сурвалжийн урт нь 3-аас 1,000,000 тэмдэгт хүртэл байна.

var
t1, t2: текст;
n, i, j, k: бүхэл тоо;
s, s1, s2: мөр;
Эхлэх
Assign(t1, "D:\Users\User\Desktop\1.txt");
Assign(t2, "D:\Users\User\Desktop\2.txt");
дахин тохируулах(t1);
дахин бичих(t2);
унших (t1, s);
k:= 0;
for i:= 1 to length(S) - 2 do
Эхлэх
s1:= хуулбар(s, i, 3);
j:= 1-ээс урт(ууд)-ын хувьд - 2 хийх
Эхлэх
s2:= хуулбар(s, j, 3);
хэрэв s2 = s1 бол inc(k);;
Төгсгөл;
хэрэв k > n бол n:= k;
k:= 0;
Төгсгөл;
бичих(t2, n);
хаах(t1);
хаах(t2);
Төгсгөл.

f: char файл;
fname: мөр;
ch: тэмдэгт;
n, мөр, w: үг;
туг: логик;
Эхлэх
write("Файлын хаяг&нэр:");
readln(fname);
оноох(f, fname);
дахин тохируулах(f);
n:= 0; мөр:= 0; w:= 0; туг:= худал;
EOF(f) биш ч гэсэн эхэлдэг
унших (f, ch);
хэрэв ord(ch) = 13 бол эхэлнэ
унших (f, ch);
мөр:= мөр + 1;
туг:= худал;
Төгсгөл
өөрөөр эхэлнэ
n:= n + 1;
хэрэв ch = " " бол flag:= худал
өөр
хэрэв туг = худал бол эхэлнэ
w:= w+1;
туг:= үнэн;
Төгсгөл;
Төгсгөл;
Төгсгөл;
хэрэв n<>0 дараа нь мөр:= мөр + 1;
writeln(n);
writeln(мөр);
writeln(w);
readln;
Төгсгөл.

var
f_in: текст;
f_out: файл;
name_in, name_out: string;
буфер: бүхэл тооны массив;
i,k: бүхэл тоо;
Эхлэх
($I-)
write("Оролтын файл:"); readln(нэр_дээр);
оноох(f_in,name_in);
дахин тохируулах(f_in);
Хэрэв IORүр дүн гарвал<>0 дараа нь эхэлнэ
writeln("Файл олдсонгүй!");
гарах
Төгсгөл;
write("Гаралтын файл: ");readln(нэр_гарч);
оноох(гарах, нэр_гарах);
дахин бичих(f_out,sizeof(integer)*8);
($I+)
i:= 0;
eof(f_in) биш ч эхлэх хэрэгтэй
inc(i);
унших (f_in, буфер[i]);
i = 8 бол эхэлнэ
блок бичих(f_out, буфер,1);
i:= 0
Төгсгөл;
Төгсгөл;
Хэрвээ би<>0 дараа нь эхэлнэ
k:=i+1-ээс 8-д буфер хийх[k] := 0;
блок бичих(f_out, буфер,1);
Төгсгөл;
хаах(f_in);
хаах(f_out);
readln
Төгсгөл.

7. Б текст файлангийн сурагчдын тоо, тэдний ангийн багш нарын талаарх мэдээллийг агуулсан. Сургуулийн ангиудын тоо 20-оос хэтрэхгүй. Анги тус бүрийг дүрслэхийн тулд нэг мөр хуваарилдаг. Файлын мөр бүрийн эхний дөрвөн байрлалд тухайн ангийн нэр (жишээлбэл, 5а, 10б) (орос үсгээр бүү бич), дараа нь доторх хүмүүсийн тоо, ахлагчийн нэрийг агуулсан байна. Хөтөлбөр нь хүсэлтийн дагуу тухайн ангийн талаарх мэдээлэл эсвэл анги олдсонгүй гэсэн мессежийг харуулдаг.

const n = 20;
төрөл
str4 = мөр;
анги = бичлэг
гарчиг: str4;
сурагчид:байт;
багш: утас;
Төгсгөл;
var
сургууль: ангиудын багц;
i,j,len: бүхэл тоо;
гарчиг_хайлт: str4;
олдсон: логик;
f: текст;
Эхлэх
оноох(f,"c:/school.txt"); дахин тохируулах(f);
i:= 1;
Eof(f) биш ч гэсэн эхэлдэг
сургуультай[i] хийх
readln (f, гарчиг, сурагчид, багш);
i:= i + 1;
Төгсгөл;
үнэн байхад эхэлдэг
write("Оролтын анги:");
readln(гарчиг_хайлт);
len:= урт(гарчиг_хайлт);
хэрэв len = 0 бол тасална;
for j:= len + 1 to 4 do
гарчиг_хайлт:= гарчиг_хайлт + " ";
олдсон:= худал;
j:= 1-ээс i - 1-ийн хувьд эхэлнэ
хэрэв гарчиг_хайлт<>school[j].гарчиг дараа нь үргэлжлүүлэх;
сургуультай[j] хийх
writeln(гарчиг:5, сурагч:5, багш:25);
олдсон:= үнэн;
завсарлага;
Төгсгөл;
хэрэв олдохгүй бол
writeln("Анги байхгүй!");
Төгсгөл;
Төгсгөл.

8. Мөр дэх бүх өгөгдсөн тэмдэгтүүдийн дарааллыг олж, өөр дарааллаар солино.

var
s_out, s_in, str: string;
f: текст;
i, len: бүхэл тоо;
Эхлэх
оноох(f,"c:/text.txt");
дахин тохируулах(f);
writeln("Ямар зүсэлт?");
readln(s_out);
writeln("Ямар оо?");
readln(s_in);
len:= урт(s_out);
Eof(f) биш ч гэсэн эхэлдэг
readln(f,str);
i:= 1;
байхад би<>0 эхэлнэ
i:= pos(s_out,str);
Хэрвээ би<>0 дараа нь эхэлнэ
устгах(str,i,len);
оруулах(s_in,str,i);
Төгсгөл;
Төгсгөл;
writeln(str);
Төгсгөл;
хаах(f);
readln;
Төгсгөл.