![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() ![]() |
![]() |
Qleek |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
Здравствуйте, это мое первое сообщение на форуме...
![]() Вот у меня такая задачка: прога должна считать с дискеты названия папок и вывести их на экран. Сразу вопрос: возможно ли это если дириктории имеют русские названия или название слишком длинное...? Полистал учебники, но ничего похожего не нашел... ![]() Помогите пожалуйста, если можете... |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Qleek
Каким компилятором пользуемся? Если ТР, то в случае длинного имени оно будет усекаться до 8-ми знаков (вместо "My Documents" будет "MYDOCU~1"). Кириллица, насколько я помню, через ТР не отображается. Сообщение отредактировано: volvo - 28.01.2005 11:41 |
Altair |
![]()
Сообщение
#3
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата Кириллица, насколько я помню, через ТР не отображается. Отображается! Любые имена хорошо отображаются, была бы загруженна кодовая страница 866. И усекаются жо 8 симв. имя... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Qleek |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
Так вот мой вопрос сам по себе: как заставить программу прочитать название папок? для этого есть команда? А компилятор - TP7. И еще, если имя более 8 символов, сможет ли программа в этой папке, которую найдет на дискете, создать текстовый файл?
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата(Qleek @ 28.01.05 16:29) как заставить программу прочитать название папок? для этого есть команда? Для этого пользуемся вот такой конструкцией (она ищет все директории в корневом каталоге 'A:\' и печатает их названия...): Код uses dos; var sRec: SearchRec; begin findfirst('A:\*.*', directory, sRec); while doserror = 0 do begin with sRec do write(name:15); findnext(sRec) end; end. |
Qleek |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
ух ты.... оно даже работает... :D спасибо....
но у меня назрел еще вопрос: можно ли каждой папке присвоить свою переменную? и если это переменная равна заложенной в программе, открыть эту папку и записать файл именно туда.... те прога должна спросить у меня в какую папку нада файлик бросить... |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Qleek
Цитата оно даже работает... ![]() А насчет Цитата прога должна спросить у меня в какую папку нада файлик бросить... Просто читаем имя папки, проверяем, что она существует, и копируем в нее файл... К сожалению, средства копирования файлов в Паскаль не встроены, и надо писать свою функцию, или вызывать "command.com"Сообщение отредактировано: volvo - 28.01.2005 18:43 |
Qleek |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата А если оно не работает, зачем постить? это юмор... ![]() Цитата Просто читаем имя папки если можно, пожалуйста поподробнее, а то у меня не получилось... |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Что значит не получилось? Я бы делал так:
Код uses dos; var sRec: SearchRec; const name_to_copy = 'C:\test.exe'; begin write('enter the dir name: '); readln(s); findfirst('A:\'+s, directory, sRec); if DosError <> 0 then halt; {директория не существует} ... {а вот тут - каким-то образом копировать файл с именем name_to_copy в папку 'A:\'+s} end. |
Altair |
![]()
Сообщение
#10
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата К сожалению, средства копирования файлов в Паскаль не встроены, и надо писать свою функцию, или вызывать "command.com" Не обязательно через command.com, можно побайтово копировать, или еще способ красивый через объекты (см. ФАК) -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Qleek |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
:molitva: Большое спасибо, вы мне очень помогли...
|
Digitalator |
![]()
Сообщение
#12
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(Oleg_Z @ 29.01.05 3:33) Не обязательно через command.com, можно побайтово копировать, или еще способ красивый через объекты (см. ФАК) ООП хорошо когда в меру - скоро уже начнут каждый пиксель на экране монитора представлять как объект (причем как наследник базового класса с примерно 30 методами, 3 разными конструкторами и полусотней полей, которые будут в являться объектами, записями, всевозможными дескриптормаи ) А по теме - чем тебя BlockRead + Blockwrite смущает, для такой архисложнойзадачи думаю они в самый раз ![]() -------------------- |
Altair |
![]()
Сообщение
#13
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата А по теме - чем тебя BlockRead + Blockwrite смущает, для такой архисложнойзадачи думаю они в самый раз Меня ничем, но рассказать стоит имхо про все. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Digitalator |
![]()
Сообщение
#14
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: ![]() ![]() ![]() |
не могу не согласиться :yes:
-------------------- |
Qleek |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
В процессе написания программы у меня возник один ламерской вопрос:
вот есть у меня переменная: Цитата Var st:string; можно ли этой переменную приравнять к названию одной из папки? |
FreeMan |
![]()
Сообщение
#16
|
- ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 480 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код uses dos; var sRec: SearchRec; st:string; begin findfirst('A:\*.*', directory, sRec); if doserror=0 then st:=sRec.Name else halt(1); WriteLn(st); end. Можно -------------------- бб
|
Qleek |
![]()
Сообщение
#17
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
FreeMan, спасибо.
Господа, позвольте поинтересоваться: возможен ли поиск скрытых папок и файлов? |
volvo |
![]()
Сообщение
#18
|
Гость ![]() |
Цитата возможен ли поиск скрытых папок и файлов? Вполне... Вот эта программка печатает имена скрытых папок на F:\ Код uses dos; var sRec: SearchRec; begin writeln('results'); findfirst('F:\*.*', directory+hidden, sRec); while doserror = 0 do begin with sRec do if attr and hidden = hidden then write(name:15); findnext(sRec) end; end. |
Qleek |
![]()
Сообщение
#19
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата directory+hidden а какие здесь еще можно употребить параметры? Цитата writeln('results') поясните пожалуйста эту строчку... |
volvo |
![]()
Сообщение
#20
|
Гость ![]() |
Первая строчка - "пережиток прошлого"
![]() А насчет какие еще параметры доступны... Вот что определено в модуле Dos: Код Const ReadOnly = $01; Hidden = $02; SysFile = $04; VolumeID = $08; Directory = $10; Archive = $20; AnyFile = $3F; Сообщение отредактировано: volvo - 29.01.2005 17:24 |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 22:31 |