![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создать файл с именем больше 8 байт в Pascal
Vitec © (2008-05-26 13:56:00)Здравствуйте! понадобилось создать файл и именем больше 8 символов через Turbo Pascal, если не ошибаюсь, модуль WinDos может работать с такими файлами? И Если да, то как заодно еще и удалить файл после создания?
DiamondShark (2008-05-27 12:01:00) [1]В Win32.hlp сделай поиск "Interrupt 21h"
AndreyV (2008-05-26 22:56:00) [2]А xcopy помогла!
Vitec (2008-05-26 21:47:00) [3]Все прекрасно работает:
{$M $4000, 0, 0}
uses dos;
begin
Exec(GetEnv('COMSPEC'),'/c xcopy /Y bufer.txt 1234567890.*');
end.
Для записи файла такая конструкция:
assign(f,'bufer.txt');
rewrite(f);
writeln(f,'lalala');{записываем то, что надо}
close(f);
Exec(GetEnv('COMSPEC'),'/c xcopy /Y bufer.txt 1234567890.*');
Для чтения, наоборот:
Exec(GetEnv('COMSPEC'),'/c xcopy /Y 1234567890.txt bufer.*');
assign(f,'bufer.txt');
reset(f);
readln(f,p);{считываем то, что надо}
close(f);
AndreyV (2008-05-26 20:46:00) [4]Вот вряд ли ты из command.com вызванном из TP7 создашь длинное имя.
Vitec (2008-05-26 19:13:00) [5]Все, нашел, для обращения к переменным среды используется функция Getenv
GetEnv('COMSPEC')
Всем спасибо, тему можно закрыть
Vitec (2008-05-26 18:11:00) [6]
> возможность использовать OpenGl или ActiveX, она по твоему
> в дельфи отсутствует, а в паскале есть????
>
читай внимательнее, это я писал про матлаб, статистику, дедуктор и т.д.
sniknik (2008-05-26 18:05:00) [7]> а для построения в них будут использоваться не тормозные стандартные библиотеки для TChart компоненты, а OpenGl или ActiveX.
возможность использовать OpenGl или ActiveX, она по твоему в дельфи отсутствует, а в паскале есть????
> Поэтому про саму задачу ничего и не писал, чтоб не начинался флуд.
... ну и дура.
---------------------
бабка
- девушка пробейте билет.
поворачивается парень с длинными волосами.
- я не девушка!
бабка
- ну и дура! нашла чем гордиться...
sniknik (2008-05-26 17:59:00) [8]> Как сопоставить одно другому - не понятно.
в винде (в досе этого нет), там где эти файлы пишутся (чего кстати не сделать там имена покороче?) использовать функцию GetShortFileName результат записать например в файлик (только не давать ему тоже длинное имя!) в виде
aaaaaaaa11 - aaa00b~1
...
в дос читать и использовать.
Vitec (2008-05-26 17:53:00) [9]Ну ёлки зеленые, говорю же, что надо именно на паскале!!! Графики и в матлабе строить можно и в статистике и в дедукторе и еще где угодно, а для построения в них будут использоваться не тормозные стандартные библиотеки для TChart компоненты, а OpenGl или ActiveX. Поэтому про саму задачу ничего и не писал, чтоб не начинался флуд.
Все что мне нужно, это возможность переименовать файл под паскалем.
Точнее теперь мне нужно либо добраться до COMSPEC, либо другим способом достаточно быстро находить месторасположения cmd.exe.
Palladin (2008-05-26 17:38:00) [10]
> Vitec (26.05.08 17:30) [22]
так графики не на паскале рисуют, а при помощи паскаля, это раз, два: никакая религия не может тебе запретить портировать код рисования графиков на тот же самый TImage, это два, три: графики, насколько я понимаю, рисуются по результатам функции при каком то шаге дифференцированности, и этот факт не только не мешает, но и способствует при вычислении значений функции (да в общем то при любом способе определений значений графики) использовать для построения TChart, что избавляет тебя от использования всяих, анахренических bgi драйверов...
Vitec (2008-05-26 17:30:00) [11]
> все чудесатее и чудесатее... графики на паскале это пяяаать.
> ..
графику в паскале с 7-ого класса преподают, по крайней мере в нашем лицее.
> в "dos-е" у них есть синонимы, запусти тот же nc и посмотри.
> .. обрайся по ним, и вся "проблема". пока не начал тут чтото
> типа своего драйвера ntfs под dos ваять.
об этом тоже думал, но неизвестно, как сопоставить полное и сокращенное имя друг другу, например есть 6 файлов:
aaaaaaaa11
aaaaaaaa21
aaaaaaaa31
aaaaaaaa12
aaaaaaaa22
aaaaaaaa32
в сокращенном виде их имена
aaa00b~1
aaa40b~1
aaaaaa~1
aaaaaa~2
aaaaaa~3
aaaaaa~4
Как сопоставить одно другому - не понятно.
sniknik (2008-05-26 17:08:00) [12]> у которых длинные (windows) имена.
в "dos-е" у них есть синонимы, запусти тот же nc и посмотри... обрайся по ним, и вся "проблема". пока не начал тут чтото типа своего драйвера ntfs под dos ваять.
Palladin (2008-05-26 17:02:00) [13]
> строит определенные графики на паскале
все чудесатее и чудесатее... графики на паскале это пяяаать...
Vitec (2008-05-26 17:00:00) [14]Причина в том что есть программа, строит определенные графики на паскале, в которой срочно понадобилась возможность работы с файлами, у которых длинные (windows) имена.
Еслибы нужно было сделать под делфи, я бы не спрашивал.
Palladin (2008-05-26 16:52:00) [15]
> типа драйвера
а точнее модули, напрямую отрабатывающие с таблицей AT :) короче свой "API" обращающийся к ФС на низком уровне... содержащий хотя бы две функции: установка/чтение длинного имени :)
и совсем не факт, что эти API будут работать и под виртуальной машиной...
> еще бы выяснить изза чего можно так мазохизмом страдать
во во... )
sniknik (2008-05-26 16:48:00) [16]> Турбо-Паскаль команды ver не читает, для него это DOS :)
и если в консоли nc запустить и уже из под него ver выполнить результат будет не тот что в "чистой", но тем не менее это не dos.
неважно кто как видит (это только для художников важно). важно технически, если это "чистый" дос то возможности нет в принципе (нужны дополнительные, типа драйвера и т.д.), если из "под винды", то возможность не проблема. проблема добраться до нее из под ограниченного в этом смысле турбо-паскаля.
имхо, но это разница однако.
еще бы выяснить изза чего можно так мазохизмом страдать... не дай Гейтс выяснится что изза незнания как консольную программe в дельфи писать...
DrPass (2008-05-26 16:37:00) [17]
> sniknik © (26.05.08 15:48) [9]
> > Нашел процедуру exec модуля Dos, но вот такой код:
> > exec('command.com','ren c:\1.txt 1234567890.txt');
> это не dos. выполни команду ver и посмотри...
Турбо-Паскаль команды ver не читает, для него это DOS :)
Palladin (2008-05-26 16:37:00) [18]
> нужно именно на паскале (Turbo Pascal 7.0),
каковы причины?
> Как до нее добраться из паскаля, подскажите пожалуйста.
ой... дай бог памяти... DosVariable?
вообще смотри в справку модуля DOS...
Vitec (2008-05-26 16:36:00) [19]
> command.com был только в Win9x. Сейчас cmd.exe
Странно, у меня в XPSp2, присутствуют и тот и другой файл
> то все надуманные в этой ветке проблемы исчезают как по
> мановению руки... а нужна получается простая консольная
> программка. пишется под дельфи... и никаких проблем.
нужно именно на паскале (Turbo Pascal 7.0), пусть и используя средства windows (см название темы топика).
> Переменная окружения (Evnironment Variable) COMSPEC
Как до нее добраться из паскаля, подскажите пожалуйста.
Германн (2008-05-26 16:34:00) [20]
> Leonid Troyanovsky © (26.05.08 16:22) [12]
>
>
И впрямь. :)