|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.12.2009, 08:34 | #1 |
Пользователь
Регистрация: 20.12.2009
Сообщений: 40
|
Чтение файла
Задание такое: дан текстовый файл, найти самое длинное слово, если их несколько, то найти их все, вывести их на экран.
Проблема: Текст ведь может быть очень большим, а массив не резиновый(( Как сделать возможность чтения больших текстов? Код:
|
29.12.2009, 12:15 | #2 |
Пользователь
Регистрация: 19.06.2009
Сообщений: 57
|
попробуй читать из файла по одному слову и сравнивать его длину с предыдущим большим словом. если больше, запоминать и сравнивать потом с ним. как дойдёшь до нулевого символа, выводи это слово
|
29.12.2009, 13:26 | #3 |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
Заведи "буфер" для хранения самого длинного слова/слов.
А текст открывай не весь, а по чуть-чуть. (ну, скажем, по одной строке или по n байт.)
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
29.01.2010, 18:32 | #4 |
Новичок
Джуниор
Регистрация: 28.01.2010
Сообщений: 1
|
Начинаю изучать С++ и не могу понять как для чтения файла указать путь на другую папку, директорию и т.п....
|
29.01.2010, 20:48 | #5 |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
да чёта савсем гемар какойто
попробуй проще зарядить свой файл как листинг Код:
всему свое время как зиме и весне
и каждому солнцу свой неба кусок Последний раз редактировалось MaTBeu; 29.01.2010 в 21:37. |
30.01.2010, 14:26 | #6 | |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 218
|
Цитата:
у меня была лабораторная работа такая, только там использовались указатель массивов на массивы или как то так, я читал строку из массива, с помощью функций узнавал конец и начало слова, в другой массив я записывал порядковый номер символа, который является началом этого слова, там дальше идет волшебство и выдает весь результат. Только я считывал весь файл сразу в массив, хотя так и надо ))) кароче, берете, открываете файл, ставите каретку (или как то так) в конец файла, потом узнаете какой номер порядковый у последнего символа, создаете динамический массив такой размерности, считываете все в него и вуаля! ) Если не знаете такой функции, то поищите в интернете как: "как узнать сколько символов в файле", ну или примерно так. fseek Вам в помощь, в MSDN найдите эту функцию и пример посмотрите и все поймете ) Последний раз редактировалось Olejik; 30.01.2010 в 14:46. |
|
30.01.2010, 19:19 | #7 |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
корче держи код правда не проверял но должен работать покрайней мере в С++Builder
//расположение файла прошивки Flash AnsiString SFail = ""; //указатель для згрузки файла прошивки Flash TStringList *List = new TStringList; //строка для загрузки данных из файла AnsiString StrokaNachalaData = ""; //вспомогательная строка AnsiString Str = ""; //переменная для подсчета строк int I; //переменная подсчета символов в строке int J; //переменные для загрузки самого длинного слова int X, Y, N, H;//типа координаты про = 0, 0 - это левый верхний край try { List -> LoadFromFile (SFail);//загрузили файл I = ListFlach -> Count;//через свойство посчитали строки //для коррекции данных т.к. строки считаются от 0 I = I --; //проводим запись Flach for (int i = 0; i <= I; i++) { //загрузили первоначальную (очередную) строку StrokaNachalaData = ListFlach ->Strings[i]; //посчитаем символы в строке J = StrokaNachalaData.Length(); //у нас есть строка с кол=вом в ней символов //и поэтому выбираем символы (слова) разделенные пробелом for (int y = 0, y <= J, y++) { Str = StrokaNachalaData; if (Str[y] == " ")//проверка установки пробела { if (N < X) { N = X; H = Y; X = 0; } } Else { X=X++;//увеличение координаты } Y = Y++; } } } catch(...)//обработка возникших ошибок { ShowMessage ("Выбирите файл прошивки"); }
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
23.02.2012, 08:03 | #8 |
Регистрация: 23.02.2012
Сообщений: 3
|
Извините что не в тему... Доброго времени суток! Подскажите пожалуйста как тут создать новую тему, или задать вопрос не относящейся ни к одному разделу, заранее спасибо?!
|
23.02.2012, 08:13 | #9 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
1 - свободное общение. 2 - для спамеров. В них можно совать вопросы "не в тему".
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[C++] чтение из файла | proga. | Помощь студентам | 1 | 25.09.2009 23:28 |
Чтение из файла | pautina | Общие вопросы Delphi | 8 | 23.01.2009 15:48 |
чтение из файла. | aschak | Общие вопросы C/C++ | 9 | 30.12.2008 15:24 |
Чтение из файла | e@gle | Общие вопросы Delphi | 3 | 14.12.2008 17:21 |
чтение из файла | Илья500 | Общие вопросы C/C++ | 26 | 05.12.2008 00:37 |