![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
doorway |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
есть текстовый файл:
Код 1 2 3 как эти цифры присвоить переменным a, b, c. что-то у меня не получается, напишите, пожалуйста, кому не лень только блок с read |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
var a, b, c: integer; Я надеюсь, уроки из прошлой темы извлечены, и теперь признаки конца строки соответствующие в файле? ![]() |
doorway |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
var a, b, c: integer; Я надеюсь, уроки из прошлой темы извлечены, и теперь признаки конца строки соответствующие в файле? ![]() ага, понял все, вот просто у меня есть текстовый файл, там данные типа Код <string> <integer> <char> (типы разделены пробелами), вот их не получается считать таким способом Сообщение отредактировано: doorway - 20.09.2010 22:11 |
Unconnected |
![]()
Сообщение
#4
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Ну так любую цифру (1 2 3 твои) можно считать как в string, так и в integer, и в char...
Ну если там перенос после 2, то наверное надо: readln(f, a, b); Сообщение отредактировано: Unconnected - 20.09.2010 22:13 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
sheka |
![]()
Сообщение
#5
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
проблема в том, что в таком случае надо точно знать какое количество символов отводится на <string>. Т.е:
var a:string; b: integer; c: char; k: byte; Сообщение отредактировано: sheka - 20.09.2010 22:23 |
doorway |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну так любую цифру (1 2 3 твои) можно считать как в string, так и в integer, и в char... Ну если там перенос после 2, то наверное надо: readln(f, a, b); получается так: файл такой: Код aaa 1 2 код a:string; выводит aaa 1--2--0 т.е., если первая переменная(a) при чтении файла имеет тип стринг, то данные с файла в переменную будут читаться не до пробела, а до конца строки. провел ни один эксперимент уже Добавлено через 10 мин. проблема в том, что в таком случае надо точно знать какое количество символов отводится на <string>. Т.е: var a:string; b: integer; c: char; k: byte; Сообщение отредактировано: doorway - 20.09.2010 22:49 |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата т.е., если первая переменная(a) при чтении файла имеет тип стринг, то данные с файла в переменную будут читаться не до пробела, а до конца строки. Разумеется. Потому что строка из файла читается1) либо до тех пор, пока выделенное под нее место не будет заполнено полностью 2) либо пока не встретится #13(символ конца строки). Всё, больше ничего. Пробел концом строки не является. Вообще-то это один из первых советов при работе с текстовыми файлами: не использовать смешанные списки ввода. Нужно читать в строку до пробела - читай посимвольно (Char-ом) и соединяй символы в строку. Цитата проблема в том, что в таком случае надо точно знать какое количество символов отводится на <string> Проблема - в том, что при ЧТЕНИИ нельзя указывать ширину поля, только при ЗАПИСИ это возможно. |
doorway |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
есть файл из 10 строк, где записаны в строке
фамилию год пол так вот эти данные надо считать и сравнить людей по годам, я собирался считать циклом каждую часть строки в двумерный массив. в один стринговый массив фамилию, в другой целый год, и в чарный пол. вот загвоздка на том, что первая идет фамилия стринговый тип и считывает всю строку. |
Unconnected |
![]()
Сообщение
#9
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Читай по строке в string, а потом эту строку разбивай на фамилию, год и пол, с помощью функций copy и pos.
Сообщение отредактировано: Unconnected - 20.09.2010 22:55 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
doorway |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
Lapp |
![]()
Сообщение
#11
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
doorway |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
sheka |
![]()
Сообщение
#13
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Если я не ошибаюсь, read - тоже процедура.
|
doorway |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
Lapp |
![]()
Сообщение
#15
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
в read после : говорит, что нужна ), почему? Может, не после, а вместо?Потому что в Паскале нет форматного read (как тебе уже говорил volvo). Строка читается до конца. Сообщение, я согласен, не очень точное - там может быть и запятая.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
doorway |
![]()
Сообщение
#16
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#17
|
Гость ![]() |
doorway, ответы надо не просматривать, а читать. Внимательно читать.
Цитата а если надо считать строку только первые 15 символов? И об этом я тоже написал. Повторять как-то не особо хочется. Ибо не факт, что ты соизволишь прочесть со второй попытки. |
sheka |
![]()
Сообщение
#18
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Виноват. Забыл. Хотел написать следующее:
var a:string[15]; b: integer; c: char; k: byte; |
volvo |
![]()
Сообщение
#19
|
Гость ![]() |
Ответ неверный
![]() ![]() |
sheka |
![]()
Сообщение
#20
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Дык я не обращал внимание на это, ведь о строке думал :yes:
Согласен, там будет пробел, верно? var a:string[15]; b: integer; c: char; k: byte; |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 11:10 |