|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.05.2007, 17:16 | #1 |
Регистрация: 15.05.2007
Сообщений: 3
|
Как прочесть два массива из файла
Хотелось бы понять, как можно прочесть два массива из файла.
С одним массивом всё понятно ., При помощи цикла считать поэлементно массив. Но как быть с двумя. Непонятно как прочитать первый элемент второго массива 3 5 8 19 2 4 9 16 и чем отделять один массив от другого, т.е как обратиться к первому элементу второго массива Программа для чтения из файла одного массива program OpenFile; const N = 3; var f: text; s : array [1..N] of integer; i : integer; begin assign( f,'h:\bp\bin\Moi pro\my.txt '); reset(f); for i :=1 to N do begin read(f,s[i]); writeln(s[i]); end; close(f); end. |
19.05.2007, 16:11 | #2 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
надо поставить разграничение между 2-мя массивами.
Например: ######################## Потом стоит смотреть считывая всю строку из файла просто в строку не равен ли1-й элемент строки № (For i:=1 to length(s) do if s[1]<>'#') then a[k]:=strtoint(s[i]); else break или exit Чуть подругому с со вторым: q:=0;/// писать сразу по окончании полного считывания! for i:=1 to length(s) do begin if (s[1]<>'#') and(q<>1)then continue; else begin q:=1;break;end; if q=1 then... теперь считываем в массив тот 2-й массив из текста. |
19.05.2007, 16:48 | #3 |
Пользователь
Регистрация: 19.05.2007
Сообщений: 11
|
Ужас, ну и способ, всё намного проще, объявить 2 переменных массива, а ещё проще создать запись специально и делать массив из этой записи, но для данного случая ето уж будет слишком. Т.к у тебя ето текстовый файл то програама ВАЩЕ правильно делать ни4е не будет.
----------- Вот норм код const n=4; var a,a1:array[1..n] of string; i,j:integer; s,s1:string; f:text; begin assign(f,'НУ ТУТ НАПИШЕШЬ ПУТЬ'); reset(f); readln(f,s); s1:=''; j:=1; for i:=0 to length(s) do begin if s[i]<>' ' then s1:=s1+s[i] else begin a[j]:=s1; s1:=''; inc(j); end; end; a1:=a; s1:=''; j:=1; for i:=0 to length(s) do begin if s[i]<>' ' then s1:=s1+s[i] else begin a[j]:=s1; s1:=''; inc(j); end; end; close(f); end; Только в етой программе 1 массив ето a1, кстати если 4ето будет ругаться(в чем я ОООО4ень не уверен), то надеюсь исправите.
Чем больше женщину мы меньше, тем меньше больше нас она.
|
19.05.2007, 20:45 | #4 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
To altar:
Я написал способ с помощью которого действительно можно разграничить 2 массива. К тому же написал вариант кода как примерно должно все выглядеть. Может есть способ лучше? не спорю. |
20.05.2007, 10:42 | #5 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
Хочется напомнить участникам клуба, что из текстовых файлов можно читать числа напрямую. Т.е. допустим при записи вы пишите write(f,x);
где х - число, то потом можете смело писать Read(f,x). единственное что должно быть обязательно, то что числа в файле должны разделяться пробелами, и всё. Такчто задача наипростейшая... (eol(f) - возвращает true если достигнут конец строки в текстовом файле) Код:
1) задача на паскале, strtoint там нет 2) как программа будет считывать число... например 23? Т.е. строку 2 23 она переделает в массив (2,2,3), если вообще переделает... Метод altar: в исходный массив забиваются строки, а нужны числа, следовательно много лишних операций, да и сложно как-то... P.S.: задачу не проверял, но должна работать. Последний раз редактировалось zetrix; 20.05.2007 в 10:46. |
20.05.2007, 16:40 | #6 |
Пользователь
Регистрация: 19.05.2007
Сообщений: 11
|
Кстати, можно сделать ето и для большого количества массивов. Создать
запись type sostarray= record a:array[1..n] of string; end; ... var b:array[1..{кольво массивов}] of sostarray; ... //обращение к елементам опред массива b[i].a[j]//i-номер массива,j-номер элемента данного массива P. S: точно не помню, но скорее всего так можно.
Чем больше женщину мы меньше, тем меньше больше нас она.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
чтение из файла в два массива | Frog25 | Общие вопросы C/C++ | 2 | 26.06.2008 12:15 |
Как прочесть исходный текст? | Ruber | Общие вопросы по Java, Java SE, Kotlin | 0 | 05.06.2008 21:45 |
Как прочесть текст в чужом окне? | ffo | Win Api | 3 | 27.04.2007 13:50 |
Как прочесть txt файл www.site.ru/info.txt | BR17UY | Работа с сетью в Delphi | 1 | 16.04.2007 13:01 |