![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Виталий_Сигов |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
Здравствуйте, уважаемые форумчане.
Решаю задачу с файлом записей: Каждая запись содержит следующую информацию об экспортируемых товарах: наименование, страна-экспортер, срок поставки, количество товара. Вывести сведения обо всех странах, в которые должен быть поставлен товар до указанной даты. Тип поля "Дата" у меня - строковый. Вводится дата в формате ДД.ММ.ГГГГ Вопрос: Как преобразовать значения ДД ММ ГГГГ из тсрокового в числовой формат и при этом сохранив знак "." ? Код своей программы привожу: Код program k_2_2; uses crt; label 1,4,5,6,8,9,10,12,20,30,40,18,19; type tovar=record naimenovanie:string[30]; strana_exporter:string[30]; data_postavki:string[10]; kolichestvo_tovara:byte; end; var tov:array[1..100] of tovar; f:file of tovar; date,str:string; k,l,n:integer; i:byte; begin 10:clrscr; textcolor(white); writeln(' Меню '); writeln(' 1: Создание файла* '); writeln(' 2: Чтение файла '); writeln(' 3: Добавление записи в файл '); writeln(' 4: Выборка записей из файла* '); writeln(' 5: Выход '); readln(k); case k of 1:goto 6; 2:goto 20; 3:goto 30; 4:goto 40; 5:goto 12; end; 6:clrscr; writeln('Введите полный адрес и имя типизированного файла');readln(str); {$I-} assign(f,str); rewrite(f); {$I+} if IoResult<>0 then begin writeln('Повтори ввод полного пути и имени типизированного файла*'); writeln; delay(5000); goto 6; end else {$I-} 8:writeln('Введите количество записей');readln(n); {$I+} if (IoResult<>0) or (n<=0) then begin writeln('Повтори ввод количества записей !!!'); delay(500); goto 8; end else writeln('Введите наименование товара, Страну - экспортер, срок поставки и количество товара *'); for i:=1 to n do begin writeln('Введите данные ',i,' - записи); with tov[i] do begin write('Введите наименование товара* : '); readln(naimenovanie); write('Введите страну - экспортер : '); readln(strana_exporter); write('Введите дату поставки : '); readln(data_postavki); {$I-} 9:write('Введите количество товара : '); readln(kolichestvo_tovara); {$i+} if (IoResult<>0) or (kolichestvo_tovara<=0) or(kolichestvo_tovara>1000) then begin writeln('Повтори ввод количества товара* !!!'); delay(5000); goto 9; end else writeln; writeln('Нажмите Enter');readln; end; write(f,tov[i]); end; close(f); goto 10; 20:clrscr; assign(f,str); reset(f); while not eof(f) do begin read(f,tov[i]); writeln(tov[i].naimenovanie); writeln(tov[i].strana_exporter); writeln(tov[i].data_postavki); writeln(tov[i].kolichestvo_tovara); end; close(f); readln; goto 10; 30:clrscr; assign(f,str); reset(f); n:=filesize(f); seek(f,n); n:=n+1; 18:writeln('Введите количество записей');readln(n); {$I+} if (IoResult<>0) or (n<=0) then begin writeln('Повтори ввод количества записей !!!'); delay(5000); goto 18; end else writeln('Введите наименование товара, Страну - экспортер, срок поставки и количество товара **'); for i:=1 to n do begin writeln('Введите данные ',i,' - записи); with tov[i] do begin write('Введите наименование товара* : '); readln(naimenovanie); write('Введите страну - экспортер : '); readln(strana_exporter); write('Введите дату поставки : '); readln(data_postavki); {$I-} 19:write('Введите количество товара : '); readln(kolichestvo_tovara); {$i+} if (IoResult<>0) or (kolichestvo_tovara<=0) or(kolichestvo_tovara>1000) then begin writeln('Повтори ввод количества товара* !!!'); delay(5000); goto 19; end else writeln; writeln('Нажмите Enter');readln; end; write(f,tov[i]); end; close(f); goto 10; 40:clrscr; assign(f,str); reset(f); writeln('Введите дату:'); readln(date); while not eof(f) do begin read(f,tov[i]); if tov[i].data_postavki<date then begin writeln(tov[i].naimenovanie); writeln(tov[i].strana_exporter); writeln(tov[i].data_postavki); writeln(tov[i].kolichestvo_tovara); end; end; close(f); readln; goto 10; 12:end. Т.е., допустим, ввожу дату в 1-й записи 15.11.2009, а во второй 24.12.2009. В итоге, если я введу дату 30.11.2009 выведутся обе записи и с датой 15.11.2009 и 24.12.2009. Может быть есть какая -то функция, позволяющая преобразовать значения из строкового в числовой формат ? И, если не трудно, можете привести пример ? |
![]() ![]() |
![]() |
Текстовая версия | 25.06.2025 4:04 |