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