Родитель
							
								
									806f9d52a5
								
							
						
					
					
						Сommit
						24491f04e3
					
				@ -0,0 +1,75 @@
 | 
				
			|||||||
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					#include <fstream>
 | 
				
			||||||
 | 
					#include <cstring>
 | 
				
			||||||
 | 
					#include <cctype>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					using namespace std;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main() 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    setlocale(LC_ALL, "Russian");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Øàã 1: Çàïðîñ ó ïîëüçîâàòåëÿ èìÿ ôàéëà
 | 
				
			||||||
 | 
					    char filename[256];
 | 
				
			||||||
 | 
					    cout << "Ââåäèòå èìÿ ôàéëà: ";
 | 
				
			||||||
 | 
					    cin.getline(filename, sizeof(filename));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Øàã 2: Ïðîâåðêà êîððåêòíîñòè èìåíè ôàéëà
 | 
				
			||||||
 | 
					    bool isValid = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Ïðîâåðêà íà çàïðåùåííûå ñèìâîëû
 | 
				
			||||||
 | 
					    const char* forbiddenChars = "*\"<>?|";
 | 
				
			||||||
 | 
					    if (strpbrk(filename, forbiddenChars) != nullptr)
 | 
				
			||||||
 | 
					        isValid = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Ïðîâåðêà íà äâîåòî÷èå
 | 
				
			||||||
 | 
					    if (strchr(filename, ':') != nullptr && 
 | 
				
			||||||
 | 
					        (filename[1] != '\\' || !isalpha(filename[0]) || 
 | 
				
			||||||
 | 
					        strchr(filename, '\\') != strrchr(filename, '\\')))
 | 
				
			||||||
 | 
					        isValid = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Øàã 3: Ïðîâåðêà íà ðàñøèðåíèå
 | 
				
			||||||
 | 
					    const char* extension = ".txt";
 | 
				
			||||||
 | 
					    if (strncmp(strrchr(filename, '.'), extension, strlen(extension)) != 0)
 | 
				
			||||||
 | 
					        strcat(filename, extension);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Øàã 4: Çàãðóçèòü ñîäåðæèìîå òåêñòîâîãî ôàéëà â ïàìÿòü
 | 
				
			||||||
 | 
					    if (isValid) 
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        ifstream file(filename, ios::binary | ios::ate);
 | 
				
			||||||
 | 
					        if (file.is_open()) 
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            streampos fileSize = file.tellg();
 | 
				
			||||||
 | 
					            char* buffer = new char[fileSize];
 | 
				
			||||||
 | 
					            file.seekg(0, ios::beg);
 | 
				
			||||||
 | 
					            file.read(buffer, fileSize);
 | 
				
			||||||
 | 
					            file.close();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // Øàã 5: Çàïðîñèòü ó ïîëüçîâàòåëÿ ñòðîêó
 | 
				
			||||||
 | 
					            char searchString[256];
 | 
				
			||||||
 | 
					            cout << "Ââåäèòå ñòðîêó äëÿ ïîèñêà: ";
 | 
				
			||||||
 | 
					            cin.getline(searchString, sizeof(searchString));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // Øàã 6: Ïîäñ÷èòàòü ÷èñëî âõîæäåíèé ñòðîêè â òåêñò ôàéë
 | 
				
			||||||
 | 
					            int count = 0;
 | 
				
			||||||
 | 
					            char* p = buffer;
 | 
				
			||||||
 | 
					            while ((p = strstr(p, searchString)) != nullptr) 
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                count++;
 | 
				
			||||||
 | 
					                p += strlen(searchString);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            cout << "×èñëî âõîæäåíèé ñòðîêè \"" << searchString << "\" â òåêñòîâîì ôàéëå: " << count << endl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // Øàã 7: Îñâîáîäèòü âûäåëåííóþ ïàìÿòü
 | 
				
			||||||
 | 
					            delete[] buffer;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else 
 | 
				
			||||||
 | 
					            cout << "Îøèáêà îòêðûòèÿ ôàéëà." << endl;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else 
 | 
				
			||||||
 | 
					        cout << "Íåêîððåêòíîå èìÿ ôàéëà." << endl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    system("pause");
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					I am a programmist!!!
 | 
				
			||||||
 | 
					This program is working so good!
 | 
				
			||||||
					Загрузка…
					
					
				
		Ссылка в новой задаче