Форум программистов, компьютерный форум CyberForum.ru

Процедура разбора полного пути к файлу, представленного строкой - C++

Восстановить пароль Регистрация
 
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
28.09.2013, 09:00     Процедура разбора полного пути к файлу, представленного строкой #1
Разработать процедуру (и вспомогательную программу) разбора заданной текстовой строки (задается переменной окружения или параметром командной строки), содержащей полное имя файла (путь и имя). Процедура должна определять четыре параметра окружения - буква диска, путь, имя файла и тип файла.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
 
int main(int argc, char* argv[])
 
{setlocale(LC_ALL,"Russia");
    
int i=0,is,ik;
 
FILE *fp;
 
       system("cls");
 
       if (argc!=2)
 
       {
 
        cout << "OSHIBKA PARAMETRA!!!";
        
         getchar();
        return 0;
 
       }
 
        fp=fopen(argv[1],"r");
 
        if (fp==NULL)
 
             {
 
             cout << "Oshibka!!! Fail s takim imenem ne suchestvuet!!!";
             getchar();
             return 0;
 
           }
 
        fclose(fp);
 
       while (argv[1][i]!=0)
 
       {
 
             if (argv[1][i]==':')       //находим двоеточие и выделяем название диска
 
             {
 
              cout << "DISK - " << argv[1][i-1] << argv[1][i] << '\n';
 
              break;
 
             }
 
       i++;
 
       }
 
       i++;
 
       is=i;     //здесь храним позицию первого слеша
 
              while (argv[1][i]!=0)
 
             {
 
                    if (argv[1][i]=='\\')
 
                    {
 
                           ik=i;   //находим последний слеш и выделяем путь к файлу
 
                    }
 
                    i++;
 
             }
 
             cout << "Put' - ";
 
                    for (is;is<=ik;is++)      
 
                                  {
 
                                   cout << argv[1][is];
 
                                  }
 
             cout << "\n" << "Imya faila - ";
 
             is=ik+1;
 
             while (argv[1][ik]!=0)
 
             {
 
                    if (argv[1][ik]=='.') //находим крайнюю точку и выделяем имя файла
 
                           {
 
                           i=ik;
 
                           }
 
              ik++;
 
             }
 
                    for (is;is<i;is++) //все остальное после крайней точки - тип файла
 
                                  {
 
                                   cout << argv[1][is];
 
                                 }
 
                    cout << "\n" << "Tip faila - ";
 
                    for (is;is<ik;is++)
 
                                  {
 
                                   cout << argv[1][is];
 
                                  }
 
return 0;}
Программа выдает OSHIBKA PARAMETRA!!! Почему так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2013, 09:00     Процедура разбора полного пути к файлу, представленного строкой
Посмотрите здесь:

C++ #include ,указание файла без полного пути.
C++ Переменная в пути к файлу
C++ Из полного пути к файлу выделить только имя файла
указание пути к файлу C++
Расщепление полного пути к файлу на диск, директорий...(неясность в задании) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
28.09.2013, 13:16     Процедура разбора полного пути к файлу, представленного строкой #2
Цитата Сообщение от Zalik Посмотреть сообщение
Почему так?
Запускать надо с параметром. Если в VS, то см.
Project Properties -> Debugging -> Command Arguments
если из консоли, то "проект.exe имя_обрабатываемого_файла"
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
29.09.2013, 19:20  [ТС]     Процедура разбора полного пути к файлу, представленного строкой #3
Извините, но я не понял. Объясните пожалуйста чуть поподробнее для чайника.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
29.09.2013, 19:27     Процедура разбора полного пути к файлу, представленного строкой #4
Zalik, погуглите "аргументы командной строки". Должно прояснить.
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
15.10.2013, 09:16  [ТС]     Процедура разбора полного пути к файлу, представленного строкой #5
"сос2.4.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
15.10.2013, 09:55     Процедура разбора полного пути к файлу, представленного строкой #6
Цитата Сообщение от Zalik Посмотреть сообщение
"сос2.4.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
У вас есть такой файл? Вот и система его не может найти.
Как называется exe-шник? "coc2.exe"? Где он лежит? Если к примеру положить его в корень диска D, то попробуйте вот так:
Код
D:\coc2.exe C:\pagefile.sys
Где D:\coc2.exe - это полный путь к вашей программе,
C:\pagefile.sys - один параметр, передаваемый в вашу программулину.
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
15.10.2013, 10:13  [ТС]     Процедура разбора полного пути к файлу, представленного строкой #7
C:\Program Files\Microsoft Visual Studio 10.0\VC>g:\сос2.4\сос2.4.exe
Системе не удается найти указанный путь.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
15.10.2013, 10:22     Процедура разбора полного пути к файлу, представленного строкой #8
Zalik, первое: что это за символ больше?
C:\Program Files\Microsoft Visual Studio 10.0\VC>g:\сос2.4\сос2.4.exe
Второе: я бы сильно не рекомендовал использовать два точки в имени файла.
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
15.10.2013, 10:28  [ТС]     Процедура разбора полного пути к файлу, представленного строкой #9
C:\Program Files\Microsoft Visual Studio 10.0\VC> -строчка стоит по умолчанию в командной строке Visual studio.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2013, 10:45     Процедура разбора полного пути к файлу, представленного строкой
Еще ссылки по теме:

C++ Не хочет создавать файл без полного пути
Задание пути к текстовому файлу C++
Вызов стороннего приложения без полного пути C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
15.10.2013, 10:45     Процедура разбора полного пути к файлу, представленного строкой #10
Zalik, туплю.
Возьмите всю эту строку в кавычки - тут чувствительность большая к пробелам.
Yandex
Объявления
15.10.2013, 10:45     Процедура разбора полного пути к файлу, представленного строкой
Ответ Создать тему
Опции темы

Текущее время: 18:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru