Файл не открывается

Тема в разделе "Общие вопросы по С и С++", создана пользователем anidismal, 9 июн 2007.

  1. anidismal

    anidismal Гость

    Задача такова:
    Нужно написать программу, которая открывает файл, читает из него текст и копирует в другой файл, причем ещё она должна выдавать ошибку, если файлы не открываются. Файлы не открываются))) Вроде все написал как в книге.
     
  2. grigsoft

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    Слеши в пути должны быть двойными (не С:\, а С:\\). Путь, прошитый в программу - дурной тон.
     
  3. anidismal

    anidismal Гость

    а если убрать дурной тон?))) как по иному?

    я заменил слеши на двойные слеши, но программа все равно выдает ошибку)
     
  4. SNike

    SNike Гость

    На какой строке останавливается, какое сообщение выдает?
     
  5. anidismal

    anidismal Гость

    выдает мое сообщение: Error is open in file (я же сделал проверку на то, загрузился ли файл или нет).
     
  6. SNike

    SNike Гость

    Нет, я имел ввиду что отключи свою проверку и посмотри какое будет системное сообщение.

    Возможно:
    - файл не существует - нужно создать этот файл
    - файл не найден - нужно задать путь
    - отказано в доступе - возможно файл уже используется или недостаточно прав для его открытия

    и т.п.

    Системное сообщение более точно опишет проблему
     
  7. anidismal

    anidismal Гость

    всё удачно вроде, компилится без проблем, а вот дело не делает, просто быстро мелькает черное окно и закрывается.
     
  8. SNike

    SNike Гость

    Сделай чтоб то что читается выводилось для начала не в файл, а на экран.

    Перед завершением программы поставь паузу (например, ожидание нажатия клавиши). Или запусти cmd.exe, а потом запусти свою прогу из командной строки.
    Или, сделай так: MyProg.Exe > log.txt
    тогда все что выводится на экран будет перенаправляться в log.txt, потом просто откроешь его и посмотришь чего там творилось

    Нужно определиться что успевает сделать программа


    -------------------------------------

    Посмотри вот тут
    Поможет?
     
  9. Kmet

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    <!--QuoteBegin-SNike+9:06:2007, 13:00 -->
    <span class="vbquote">(SNike @ 9:06:2007, 13:00 )</span><!--QuoteEBegin-->Сделай чтоб то что читается выводилось для начала не в файл, а на экран.

    Перед завершением программы поставь паузу (например, ожидание нажатия клавиши). Или запусти cmd.exe, а потом запусти свою прогу из командной строки.
    Или, сделай так: MyProg.Exe > log.txt
    тогда все что выводится на экран будет перенаправляться в log.txt, потом просто откроешь его и посмотришь чего там творилось

    Нужно определиться что успевает сделать программа
    [snapback]68776" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    а ужас... неужели дебагеры запретили?
     
  10. anidismal

    anidismal Гость

    при запуске через сеанс ms-dos(cmd.exe) я перехожу в каталог с прогой, запускаю её (ну командой) и ничего, опять передо мной мигает С:\>(программу я перекинул туда).
    Используя твой второй метод я тоже ничего не добился. log.txt создался пустой.
     
  11. SNike

    SNike Гость

    а почему из IDE не запускаешь на трассировку?
    Заодно посмотрел бы на состояние переменных, на пошаговое выполнение и т.п.
     
  12. anidismal

    anidismal Гость

    я С++ начал учить вчера, и не понимаю о чем ты:)
     
  13. SNike

    SNike Гость

    Visual C++ или С++ Bilder ?
     
  14. anidismal

    anidismal Гость

    я модифицировал свою программу :)
    теперь она просто ожидает ввод символа, но не показывает содержание файла.

    Borland C++ . Не visual, потому что сперва нужно, как мне кажется научится применять сам код, а потом уже назначать его кнопочкам на форме.
     
  15. SNike

    SNike Гость

  16. anidismal

    anidismal Гость

    это первый вопрос, на котором я подвис)
     
  17. anidismal

    anidismal Гость

    Возможно данные из файла pirrors.txt не передаются переменной word. Я сделал передачу так:
    ПРАВИЛЬНО ли я сделал?

    УРАААА!!!! ЗАРАБОТАЛО!!! НЕ ЗНАЮ КАК, НО ЗАРАБОТАЛО!!!!
    На экран выдалось слово, хранящееся в файле pirors.txt!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Теперь вопрос №2.
    Товарищ grigsoft намекнул, что можно иным способом указывать путь к файлам, чем меня ужасно заинтриговал :) . Поскольку я сам понимаю, что указывать моим способом пути к файлам весьма глупо(ведь файлы будут лежать в папке с программой, а её пользователь может положить куда захочет), хотелось бы узнать этот способ. Может как в HTML? чтобы файл грузился из папки с программой?
     
  18. SNike

    SNike Гость

    Молодец!
    Кстати, если интересно, то вот тема похожая на твою :)

    По поводу указания файлов и путей - не заморачивайся, это чуть попозже, когда освоишься :)
    Они могут считываться, к примеру, из INI файла, из реестра, из того же обычного текстового файла, передаваться из командной строки и фиг знает еще какими способами :)

    Конкретных рекомендация я тебе дать не могу, т.к. C не занимаюсь, но принципы везде схожи :)

    А, кстати, добавь вторую строку в свой текстовый файл и попробуй снова его прочесть ;)
     
  19. anidismal

    anidismal Гость

    Читает, только на строку не переносит))
    PS. я щас уйду гулять, если можешь, дай свой номер ICQ(есть есть) или почты(лучше аську).
     
  20. SNike

    SNike Гость

    Нужно сделать цикл чтения
    Код (Text):
    Пока НеКонецФайла
    ПрочитатьСтроку
    ВывестиНаЭкран
    ...
    КонецЦикла

    Используй оператор чтения с переходом к следующей строке
     
Загрузка...

Поделиться этой страницей