![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
-Anna- |
![]()
Сообщение
#1
|
Гость ![]() |
Есть файл Test.txt состоящий из 10 строк, каждая строка такого содержания:
фамилия:имя:год рождения:улица:дом:квартира:телефон : - это разделитель. И есть запись и массив на эту запись Код Type TBase = Record Family:string; Name:string; Year:integer; Street:string; Dom:integer; kvar:integer; Tel:integer; End; var Spisok: Array[1..10] of TBase; Подскажите пожалуйста, как заполнить поля записи из этого файла. Т.е. меня интересует, как выделить из строки например фамилию и записать ее в поле family, имя в name и т.д.. |
![]() ![]() |
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
http://forum.pascalnet.ru/index.php?showtopic=6972 - разбиение на слова. все способы.
не помогло? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
мисс_граффити, можно и так, но как бы не получилось "из пушки по воробьям"... Если разделитель только один, я бы сделал вот так, наверное:
Type TBase = Record
Family:string;
Name:string;
Year:integer;
Street:string;
Dom:integer;
kvar:integer;
Tel:integer;
End;
function strInt(s: string): integer;
var X, err: integer;
begin
val(s, X, err);
strInt := X;
end;
function get_str(s: string; n: integer): string;
var
i, start, finish: integer;
function next: integer;
begin
next := start + pos(':', copy(s, start, 255))
end;
begin
start := 1;
for i := 1 to pred(n) do start := next;
finish := next;
if finish = start then
finish := length(s) + 2;
get_str := copy(s, start, pred(finish - start));
end;
var
Spisok: Array[1..10] of TBase;
i: integer;
s: string;
begin
s := 'Family:Name:1990:Street:10:12:12345';
with spisok[1] do begin
family := get_str(s, 1);
name := get_str(s, 2);
year := strInt(get_str(s, 3));
street := get_str(s, 4);
dom := strInt(get_str(s, 5));
kvar := strInt(get_str(s, 6));
tel := strInt(get_str(s, 7));
end;
writeln;
end.
Здесь заполнение одной записи... Идея понятна? |
![]() ![]() |
![]() |
Текстовая версия | 23.07.2025 1:38 |