0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 16

Как прочитать файл построчно?

10.12.2013, 22:30. Показов 15206. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Требуется Создать текстовый файл средствами редактора (т.е. в «Блокноте»).
Прочитать этот файл построчно и произвести в каждой строке следующие действия:поменять местами каждую пару расположенных подряд символов (при нечетной длине строки последний символ оставить на месте). (Например, строка ‘1c2a3b0’ преобразуется в строку ‘c1a2b30’). Читаю таким образом, но это не правильный вариант. Надо как я понимаю считать данные из файла в массив каким то образом.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure prn (var f : text); {вывод файла на экран}
var c : real;
begin
assign (f , 'C:\file.txt');
reset(f);
i:=0;
writeln('Файл содержит числа:');
while not eof(f) do
begin
readln(f , c); write (c : 8:3);
end;
writeln;
close(f);
end;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.12.2013, 22:30
Ответы с готовыми решениями:

Как сделать надпись "файл не создан" если нужно его прочитать но файл ещё не создан?
Как сделать надпись "файл не создан" если нужно его прочитать но файл ещё не создан? Например в такой программе: uses crt; Type...

Создать файл F из элементов массива M, переписать в файл G все компоненты которые меньше 5, прочитать файл G
создать файл F,компонентами которого являются элементы массива M,переписать в файл G все компоненты которые меньше 5,прочитать файл G

Создать файл (текстовый) средствами редактора. Читать этот файл построчно и упорядочить все цифры по убыванию
Подредактируйте пожалуйста код. Вот задачка: "Создать файл (текстовый) средствами редактора. Читать этот файл построчно и...

6
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
10.12.2013, 22:35
Цитата Сообщение от Street Racer Посмотреть сообщение
в каждой строке
Цитата Сообщение от Street Racer Посмотреть сообщение
Pascal
1
var c : real;
Это как? Вы символьную строку в real запихиваете? Как компилятор такое мог проглотить?
0
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 16
10.12.2013, 22:38  [ТС]
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
Это как? Вы символьную строку в real запихиваете? Как компилятор такое мог проглотить?
Спасибо, поправил. Сейчас выводить как положено- по строкам. А как в дальнейшем мне можно обратиться к каждой из этих строк по отдельности?
0
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
10.12.2013, 22:45
Цитата Сообщение от Street Racer Посмотреть сообщение
А как в дальнейшем мне можно обратиться к каждой из этих строк по отдельности?
Вам надо переделать строку и записать в файл обратно? Если просто считать, то читаете строку и на месте обрабатываете, а дальше выводите на экран. Иначе надо файл читать в какой-то массив строк, а потом этот массив записать в файл.
0
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 16
10.12.2013, 22:47  [ТС]
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
Вам надо переделать строку и записать в файл обратно? Если просто считать, то читаете строку и на месте обрабатываете, а дальше выводите на экран. Иначе надо файл читать в какой-то массив строк, а потом этот массив записать в файл.
А как можно считать определённую строку из файла? что за команда? Лучше наверно будет создать массив строк, вопрос только как?
0
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
10.12.2013, 22:55
Цитата Сообщение от Street Racer Посмотреть сообщение
А как можно считать определённую строку из файла?
Текстовый файл является файлом последовательного доступа и чтение из него возможно только по порядку, для этого есть файлы прямого доступа.
Цитата Сообщение от Street Racer Посмотреть сообщение
Лучше наверно будет создать массив строк, вопрос только как?
Откуда Вам знать количество строк в файле? Разве что использовать динамическое выделение памяти.

Итог таков. Читаете построчно, обрабатываете, выводите на экран или в новый файл(потом старый можно затереть).
0
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 16
11.12.2013, 14:51  [ТС]
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
Откуда Вам знать количество строк в файле? Разве что использовать динамическое выделение памяти.

Итог таков. Читаете построчно, обрабатываете, выводите на экран или в новый файл(потом старый можно затереть).
Написал с использованием массива. Взял частный случай, что строк будет не более 50. Но в итоге программа не хочет печатать строки, подскажите, что не так.
Pascal
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
Program sum_file;
var f : text; n:integer;
procedure prn (var f : text); {вывод файла на экран}
var c : string;
begin
assign (f , 'C:\file.txt');
reset(f);
writeln('Файл содержит числа:');
while not eof(f) do
begin
readln(f , c); writeln (c );
end;
writeln;
close(f);
end;
 
procedure count (var f : text; n:integer); {подсчет }
type masstr=array [1..50] of string;
var c, k : real; str:masstr;j,i,s:integer;
begin
reset (f);
n:=0;
while not eof(f) do
begin
n:=n+1;
readln(f,str[n]);
end;
for j:=1 to n do
if length(str[j]) mod 2 = 0 then
while   i<length(str[j]) do
begin
s:=ord(str[j][i]);
str[j][i]:=str[j][i+1];
str[j][i+1]:=chr(s);
end
else
while   i<length(str[j])-1 do
begin
s:=ord(str[j][i]);
str[j][i]:=str[j][i+1];
str[j][i+1]:=chr(s);
end;
writeln(str[j]);
end;
begin {основная программа}
prn (f);
count (f,n);
end.
Добавлено через 8 минут
Вот так точнее
Pascal
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
Program sum_file;  type masstr=array [1..50] of string;
var f : text; n:integer;
procedure prn (var f : text); {âûâîä ôàéëà íà ýêðàí}
var c : string;
begin
assign (f , 'C:\file.txt');
reset(f);
writeln('Ôàéë ñîäåðæèò ÷èñëà:');
while not eof(f) do
begin
readln(f , c); writeln (c );
end;
writeln;
close(f);
end;
 
procedure count (var f : text;str:masstr; n:integer ); {ïîäñ÷åò }
 
var c, k : real; j,i,s:integer;
begin
assign (f , 'C:\file.txt');
reset (f);
n:=0;
while not eof(f) do
begin
n:=n+1;
readln(f,str[n]);
end;
for j:=1 to n do
if length(str[j]) mod 2 = 0 then
while   i<length(str[j]) do
begin
s:=ord(str[j][i]);
str[j][i]:=str[j][i+1];
str[j][i+1]:=chr(s);
end
else
while   i<length(str[j])-1 do
begin
s:=ord(str[j][i]);
str[j][i]:=str[j][i+1];
str[j][i+1]:=chr(s);
end;
 
end;
begin {îñíîâíàÿ ïðîãðàììà}
prn (f);
count (f,str,n);
while j<=n do
writeln(str[j]);
end.
Добавлено через 13 часов 46 минут
Подскажите, где ошибка? программа не хочет работать

Добавлено через 54 минуты
Спасибо, ошибки исправил- всё работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.12.2013, 14:51
Помогаю со студенческими работами здесь

Как прочитать файл построчно на java
public static void main(String args) throws IOException{ File file = new File(&quot;program.txt&quot;); ...

Как прочитать текстовый файл не построчно, а полностью?
Как прочитать текстовый файл не построчно, а полностью? Просто дано задание: найти в каждой строке максимально встречающуюся букву и...

[Windows Modern API] Как прочитать текстовый файл построчно?
Открываю fileOpenPicker'ом текстовый файл: var openPicker = new Windows.Storage.Pickers.FileOpenPicker(); //создаю fileOpenPicker ...

Как прочитать текстовый файл построчно и каждую строку разбить на подстроки
Как прочитать текстовый файл в C# следующего формата: Число строк x y a s f g ... Где x, y, a, s,f, g --int. По 2...

Не могу построчно прочитать файл
Здравствуйте. Есть файл Yandex.txt, в котором первые несколько строк: nadizlat savostina.naStya a300at Bor5761 Есть код: ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru