Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 644
от 21.01.2007, 18:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 452, Экспертов: 58
В номере:Вопросов: 7, Ответов: 16


Вопрос № 71068: Если задана папка, как узнать все файлы которые находятся в ней и вывести их в Memo. Другими словами сделать проход по файлу....
Вопрос № 71070: Как считывать файл по символьно в обратном направлении, тоесть с права на лево?...
Вопрос № 71095: Здравствуйте уважаемые эксперты.Помогите решить задачу с использованием функций с указателями в качестве аргументов: ...
Вопрос № 71104: Подскажите пожалуйста, где можно скачать и как установитьTurbo C++ 3.0?...
Вопрос № 71134: Почему у меня в строке fprintf(t,"%s",sr.Name); выдает ошибку и пишет: Acce violation to addres 654463418 in module 'CIGI6546'. Read of address F654646....
Вопрос № 71152: Помогите, пожалуйста, решить задачу: Составить программу, которая читает текстовый файл и выполняет его преобразование: Во всем тексте все появления слова "наилучший" взять в кавычки. Примечания: 1. Имя файла, кото...
Вопрос № 71153: Кто нибудь, помогите решить задачу pls. Составить программу, которая читает текстовый файл и выполняет его преобразование: В каждой строке заменить последовательность слов "1","2","3" на "один-два-три"...

Вопрос № 71.068
Если задана папка, как узнать все файлы которые находятся в ней и вывести их в Memo. Другими словами сделать проход по файлу.
Отправлен: 15.01.2007, 18:11
Вопрос задал: Костенко Игорь Викторович (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Santana
Здравствуйте, Костенко Игорь Викторович!

iAttributes = faArchive | faAnyFile;
aPath = "dir\*.dbf";

Memo->Clear();

if (FindFirst(aPath, iAttributes, sr) == 0)
{
do
{
Memo->Add(sr.Name);
} while (FindNext(sr) == 0);
FindClose(sr);
};
Ответ отправил: Santana (статус: 9-ый класс)
Ответ отправлен: 15.01.2007, 18:21
Оценка за ответ: 5
Комментарий оценки:
Спасиба за ответ.
Сделал все по твоему примеру, но что-то не так.
Скажи пожалуста, почему если я ввожу например "C:Temp123", то оно не выводит все файлы внутри этой папки, а выводит "123".

Отвечает: kool
Здравствуйте, Костенко Игорь Викторович!
Используй функции FindFirstFile, FindNextFile, SetCurrentDirectory!
Удачи!
Ответ отправил: kool (статус: 4-ый класс)
Ответ отправлен: 15.01.2007, 21:03
Оценка за ответ: 4


Вопрос № 71.070
Как считывать файл по символьно в обратном направлении, тоесть с права на лево?
Отправлен: 15.01.2007, 18:13
Вопрос задал: Костенко Игорь Викторович (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: kool
Здравствуйте, Костенко Игорь Викторович!
Переписать его в другой файл в обратном парядке
и считывать полученный файл в обычном порядке!
Удачи!
Ответ отправил: kool (статус: 4-ый класс)
Ответ отправлен: 15.01.2007, 21:03
Оценка за ответ: 4

Отвечает: Lemeshev Konstantin
Здравствуйте, Костенко Игорь Викторович!
Написано под Borland C++ Builder, но думаю идея будет понятна. Код в приложении. Дано только содержимое функции.

Приложение:

Ответ отправил: Lemeshev Konstantin (статус: 2-ой класс)
Ответ отправлен: 16.01.2007, 06:43
Оценка за ответ: 4

Отвечает: dentist
Здравствуйте, Костенко Игорь Викторович!

#include <stdio.h>
int main(int argc, char * argv[])
{
char b, file[] = "c:\boot.ini";
FILE * f;

if ((f = fopen(file, "rb")) != NULL)
{
for (fseek(f, -1, SEEK_END);; fseek(f, -2, SEEK_CUR))
{
b = (char) fgetc(f);
printf("%c", b);
if (ftell(f) == 1) break;
}
fclose(f);
printf(" ");
fgetc(stdin);
}
}
---------
"Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 8-ой класс)
Ответ отправлен: 16.01.2007, 09:48

Отвечает: Ross
Здравствуйте, Костенко Игорь Викторович!

Данный код переписывает file1.txt в file2.txt, читая первый в обратном порядке.

Приложение:

Ответ отправил: Ross (статус: 4-ый класс)
Ответ отправлен: 17.01.2007, 01:48


Вопрос № 71.095
Здравствуйте уважаемые эксперты.Помогите решить задачу с использованием функций с указателями в качестве аргументов:

Приложение:

Отправлен: 15.01.2007, 20:42
Вопрос задала: Lena_25 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Mitya86
Здравствуйте, Lena_25!

Я так понял, что необходимо определить сумму отрицательных элементов в строке?

Приложение:

Ответ отправил: Mitya86 (статус: 1-ый класс)
Ответ отправлен: 16.01.2007, 01:10


Вопрос № 71.104
Подскажите пожалуйста, где можно скачать и как установитьTurbo C++ 3.0?
Отправлен: 15.01.2007, 21:35
Вопрос задал: Svetka1987 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: ramok
Здравствуйте, Svetka1987!

качаете
http://popoff.donetsk.ua/file/text/donntu.opal/tc30.zip
разархивируете в папку c: c
и запускаете c: cin c.exe

если не устанавливать в c: c, то нужно после запуска bin c.exe зайти в пунк меню Options->Directories и исправить на нужный путь
Ответ отправил: ramok (статус: 9-ый класс)
Ответ отправлен: 15.01.2007, 21:43
Оценка за ответ: 5


Вопрос № 71.134
Почему у меня в строке fprintf(t,"%s",sr.Name); выдает ошибку и пишет:
Acce violation to addres 654463418 in module 'CIGI6546'. Read of address F654646.

Приложение:

Отправлен: 16.01.2007, 04:06
Вопрос задал: Костенко Игорь Викторович (статус: 1-ый класс)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: ramok
Здравствуйте, Костенко Игорь Викторович!

1. не стоит открывать файл цикле.
вынесете
t=fopen("C:allfiles.txt","w");
за пределы цикла, перед do{

2. открываетебе вы файл в перменную t, а закрываете переменную out;
fclose(out);

3. не стоит пользоватся такой сместью C и C++. для работы с файлами, раз уж вы применяете VCL, лучше использовать VCL средства. например TFileStream. пример можете найти тут
http://www.cyberguru.ru/programming/borland-cpp/borland-cpp-vcl-faq-3.html
Ответ отправил: ramok (статус: 9-ый класс)
Ответ отправлен: 16.01.2007, 05:21
Оценка за ответ: 5

Отвечает: Lemeshev Konstantin
Здравствуйте, Костенко Игорь Викторович!
В дополнение к ответу эксперта ramok, скажу, что правильно имя файла надо указывать так "c:\allfiles.txt", т.е. слэш нужно удваивать.
Ответ отправил: Lemeshev Konstantin (статус: 2-ой класс)
Ответ отправлен: 16.01.2007, 06:24
Оценка за ответ: 5

Отвечает: kool
Здравствуйте, Костенко Игорь Викторович!
----------------------------------------------
Скорее всего потому, что sr.Name==NULL;
Удачи!
----------------------------------------------
Ответ отправил: kool (статус: 4-ый класс)
Ответ отправлен: 16.01.2007, 07:50
Оценка за ответ: 3

Отвечает: Mitya86
Здравствуйте, Костенко Игорь Викторович!

попробуйте инициализировать sr
Ответ отправил: Mitya86 (статус: 1-ый класс)
Ответ отправлен: 16.01.2007, 13:09
Оценка за ответ: 3

Отвечает: Thread
Здравствуйте, Костенко Игорь Викторович!
У меня подозрение, что вы используете экземпляр классаTSearchRec - sr без инициализации, т.е. поле sr.Name скорре всего равно NULL.
Ответ отправил: Thread (статус: 1-ый класс)
Ответ отправлен: 17.01.2007, 05:58
Оценка за ответ: 3


Вопрос № 71.152
Помогите, пожалуйста, решить задачу:

Составить программу, которая читает текстовый файл и выполняет его преобразование:
Во всем тексте все появления слова "наилучший" взять в кавычки.

Примечания:
1. Имя файла, который подлежит обработке, должно быть параметром программы.
2. Файл должен иметь не менее 10-15 строк текста.
3. Допускается ограничить максимальную длину строки в тексте 80 символами.
4. Допускается считать, что слова разделяются пробелами, а знаки препинания рассматривать как буквы.
5. Программу следует разрабатывать, исходя из предпложения, что весь текст из файла не может быть рамещен в оперативной памяти.
6. Допускается создавать при выполнении программы временные файлы, которые, однако, не должны сохраняться после окончания программы.
Отправлен: 16.01.2007, 09:01
Вопрос задал: Snowball (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Snowball!
Вот пример на C++. Вроде бы все требования выполняются...

1. Имя входного файла - это первый параметр программы

string in_file_name(argv[1]);

2. Это примечание к файлу, а не к программе
3. Тоже примечание для файла
4. Слова читаются именно как разделенные пробелами

while(getline(in, str, ' '))

5. Класс строки используется только для отдельных слов
6. Временный файл есть и по завершению программы он удаляется.

Приложение:

Ответ отправил: Терсков Сергей (статус: 4-ый класс)
Ответ отправлен: 17.01.2007, 03:39


Вопрос № 71.153
Кто нибудь, помогите решить задачу pls.
Составить программу, которая читает текстовый файл и выполняет его преобразование:
В каждой строке заменить последовательность слов "1","2","3" на "один-два-три".
Примечания:
1. Имя файла, который подлежит обработке, должно быть параметром программы.
2. Файл должен иметь не менее 10-15 строк текста.
3. Допускается ограничить максимальную длину строки в тексте 80 символами.
4. Допускается считать, что слова разделяютсяпробелами. а знаки препинания рассматриваются как буквы.
5. Программу следует разрабатывать, исходя из предположения, что весь текст из файла не может быть размещён в оперативной памяти.
6. Допускается создавть при выполнении программы временные файлы, которые, однако, не должны сохраняться после окончания программы.
Отправлен: 16.01.2007, 09:01
Вопрос задал: Rusl (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ross
Здравствуйте, Rusl!

Вот решение (в приложении). Удачи!

Приложение:

Ответ отправил: Ross (статус: 4-ый класс)
Ответ отправлен: 16.01.2007, 22:35

Отвечает: Терсков Сергей
Здравствуйте, Rusl!
Практически идентичная задача в вопросе № 71152. Используйте приведенный в ней код. Нужно лишь поменять строки

string find_str("наилучший");
string replace_str(""наилучший"");

на

string find_str("123");
string replace_str("один-два-три");

и все. Остальное менять не нужно, т.к. остальные условия задачи такие же.
Ответ отправил: Терсков Сергей (статус: 4-ый класс)
Ответ отправлен: 17.01.2007, 03:43


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.41 beta от 19.01.2007
Яндекс Rambler's Top100

В избранное