Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> полный путь к файлу 
V
    Опции темы
pycha
Дата 8.8.2008, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



Подскажите пожалуйста как надо правильно указать полный путь к файлу в програме в аргументе оpen. В книге по которой я учусь в примере указано такой формат пути
"D:\\1.txt" но он почемуто не работает. Проблема вот в чем. Если запустить прогу
и указать "1.txt" соотвественно с скопированым файлом в папке с прогой она намертво зависает, окно не показывает, и ее процес забирает на себя всю работу процесора.  Если прогу  запустить под дебагом то выдает что файл не найден. 
Как надо правильно указать полный путь? 

 
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
Partizan
Дата 8.8.2008, 22:30 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 67



прога то сама что делает? ) проблема наверно в проге, а не в пути)


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
cutwater
Дата 9.8.2008, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 2
Всего: 10



Во-первых если запускаете под дебагом есть возможность, что текущая директория будет отличаться, смотря каким средством разработки пользуетесь и относительный путь не прокатит.

Желательно приложить исходный код программы.

Честно не сильно сообразил. open - стандартная юниховая функция.


--------------------
user posted image
PM MAIL   Вверх
pycha
Дата 9.8.2008, 07:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



это примитивный текстовый просмоторщик. Работаю в Visual Studio 2008 .  Вот исходники

Это сообщение отредактировал(а) pycha - 9.8.2008, 07:19

Присоединённый файл ( Кол-во скачиваний: 11 )
Присоединённый файл  WinRAR_archive.rar 4,03 Kb
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
pycha
Дата 9.8.2008, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



open - для открытия файла и связывания с обьектом ifstream 

Цитата

прога то сама что делает? ) проблема наверно в проге, а не в пути)

ну да, но чтобы открыла его под дебагом надо указать полный путь.

Это сообщение отредактировал(а) pycha - 9.8.2008, 07:25
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
cutwater
Дата 9.8.2008, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 2
Всего: 10



У меня лично все заработало, токо убрал MessageBox в строке 39 - обработчика событий. А так на каждое событие окна он вам показывает сообщение...
Под дебагом опять же смотря из какой директории запускается. У меня при настройках по умолчанию в ВС 2008 запускается из папк

Это сообщение отредактировал(а) cutwater - 9.8.2008, 11:19
PM MAIL   Вверх
pycha
Дата 9.8.2008, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



Этот мессажбокс я вставил для того чтобы посмотреть вызывается ли хоть бы чтото. У меня не вызывается.  С чем это может быть связано?
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
cutwater
Дата 9.8.2008, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 2
Всего: 10



*deleted*

Это сообщение отредактировал(а) cutwater - 9.8.2008, 22:06


--------------------
user posted image
PM MAIL   Вверх
Partizan
Дата 9.8.2008, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 67



cutwater, написал же человек, что работает в VS 2008


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
cutwater
Дата 9.8.2008, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 2
Всего: 10



сори, незаметил


--------------------
user posted image
PM MAIL   Вверх
pycha
Дата 9.8.2008, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



Я нашол частичное решение проблемы . Я запустил прогу , в исходниках везде разпихал брекпоинты . Приатачился к процесу проги в окне Debag. Брекпоинт сработал в проверке конца файла . Оно не выходит из цыкла поиска конца файла пока не выкидывает. Окно "microsoft debag libery" . Я сделал другой файлик Запустил прогу - работает. Начал думать в чем разница и увидел что в первом файлике было больше одной строки. Во втором одна строка,  с ней работает все как надо. Вот сами посмотрите.  Как бы это исправить?

Это сообщение отредактировал(а) pycha - 9.8.2008, 23:03

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  WinRAR_ZIP_archive.zip 0,24 Kb
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
cutwater
Дата 10.8.2008, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 2
Всего: 10



Теперь я таки внимательней рассмотрел ваш механизм считывания файла. Он вкорне не верен.
Вы тут намешали как текстовый так и бинарный режимы.

Во первых вы файл открываете в тектовом режиме по умолчанию раз.

Код

while(!finp.eof()){
        finp.get(buf, 199);
        buf[199] = 0;
        lines.push_back(string(buf));
    }


О методе get вы тоже не читали. Работает он как - считывает count-1 символов и последним добавляет нуль завершитель до символа разделителя, коим по умолчанию является \n то есть считав одну строку дальше он вам читать не будет. ибо в потоке идет символ разделитель.

Поехали дальше. Вы руками обнуляете последний символ, опять же если бы get его за вас не ставил, толку от этого не было. потому что считаться может меньше чем 199 символов в конце файла например, и дальше Вы получите мусор.

Теперь о том как правильно. Вы храните массив строк, поэтому на мой взгляд самым оптимальным решением будет следующее:

Код

    ifstream finp(file);
    if(!finp){
        MessageBox(NULL, L"не найден входной файл",L"Лажа", MB_OK);
        return FALSE;
    }
    string buffer;
    while(!finp.eof()){
        getline(finp, buffer);
        lines.push_back(buffer);
    }
    finp.close();


Закрывать поток нужно тоже не забывать

ЗЫ. Все остальное не смотрел, ошибки не проверял, ибо времени нет. Будут вопросы, обращайтесь

Это сообщение отредактировал(а) cutwater - 10.8.2008, 14:18


--------------------
user posted image
PM MAIL   Вверх
pycha
Дата 10.8.2008, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



Я это переписывал с книги " Win32 API. Эффективная разработка приложений" думал что раз написано в книге , то все должно работать коректно. Во всяком случае спасибо. 

Это сообщение отредактировал(а) pycha - 10.8.2008, 20:41
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
pycha
Дата 10.8.2008, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



твой способ работает . Спасибо!
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
cutwater
Дата 10.8.2008, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 2
Всего: 10



Судя по примеру - выкидывать книжку.
А вообще если для начинающего советую читать
Петзольд, затем Румянцева и Рихтера для изучения Win32 и не забывать о MSDN


--------------------
user posted image
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.