|
Основной форум Сюда все проблемы связанные с программированием. |
20.05.2011, 19:57
|
#16
|
ПроЭктировщик
Регистрация: 22.10.2010
Сообщений: 196
Написано 16 полезных сообщений (для 30 пользователей)
|
Ответ: File Manager и ОС
AngeLvKedaX, ты в общем не разбираешься в программировании или только в mp?
__________________
Для меня нет ничего не реального в кодинге, но мне лень
gainOS - прорыв в проектировании ОС на MIDlet Pascal
|
(Offline)
|
|
20.05.2011, 20:00
|
#17
|
ПроЭктировщик
Регистрация: 22.10.2010
Сообщений: 196
Написано 16 полезных сообщений (для 30 пользователей)
|
Ответ: File Manager и ОС
im_zorg, какой то корявый алгоритм. С длинными путями будет долго считывать и есть файлы такого типа "blabla.mp3.bak". Собственно функция достаёт из любого имени расширеине
function GetFileExt(name: string): string; var i: integer; c: char; return: string; begin return:= ''; for i:= Length(name)-1 downto 0 do begin c:= GetChar(name,i); if c <> '.' then return:= c + return else break; end; GetFileExt:= return; end;
__________________
Для меня нет ничего не реального в кодинге, но мне лень
gainOS - прорыв в проектировании ОС на MIDlet Pascal
|
(Offline)
|
|
20.05.2011, 20:29
|
#18
|
Знающий
Регистрация: 25.10.2009
Сообщений: 338
Написано 53 полезных сообщений (для 61 пользователей)
|
Ответ: File Manager и ОС
в файле blablala.mp3.bak расширение bak а не как не mp3.bak!
|
(Offline)
|
|
20.05.2011, 21:14
|
#19
|
ПроЭктировщик
Регистрация: 22.10.2010
Сообщений: 196
Написано 16 полезных сообщений (для 30 пользователей)
|
Ответ: File Manager и ОС
im_zorg, да я знаю, но согласно твоему алгоритму у тебя такой и достанет. Я имею ввиду mp3.bak так как ты находишь первую точку в строке, а надо последнюю
__________________
Для меня нет ничего не реального в кодинге, но мне лень
gainOS - прорыв в проектировании ОС на MIDlet Pascal
|
(Offline)
|
|
20.05.2011, 23:18
|
#20
|
Знающий
Регистрация: 14.05.2010
Сообщений: 297
Написано 13 полезных сообщений (для 13 пользователей)
|
Ответ: File Manager и ОС
Я просто год уже не писал на МП, ХТМЛ юзал)) зарабатывал сайтами. А многих функций МП и не знаю)) +логика моя не рулит))
__________________
G502, GT S5230w user!
|
(Offline)
|
|
20.05.2011, 23:47
|
#21
|
Знающий
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений (для 61 пользователей)
|
Ответ: File Manager и ОС
Нада в либу добавить функцию возвращения расширения!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.05.2011, 08:19
|
#22
|
Знающий
Регистрация: 14.05.2010
Сообщений: 297
Написано 13 полезных сообщений (для 13 пользователей)
|
Ответ: File Manager и ОС
А надо бы...
__________________
G502, GT S5230w user!
|
(Offline)
|
|
21.05.2011, 08:57
|
#23
|
Знающий
Регистрация: 25.10.2009
Сообщений: 338
Написано 53 полезных сообщений (для 61 пользователей)
|
Ответ: File Manager и ОС
Сообщение от alexprey
im_zorg, да я знаю, но согласно твоему алгоритму у тебя такой и достанет. Я имею ввиду mp3.bak так как ты находишь первую точку в строке, а надо последнюю
|
если я нахожу первую то функция copy скопирует от положение этой точки+1(ну чтоб без точки скопировалось) и до конца строки!!! соответственно и blabla.mp3.bak копирует mp3.bak
|
(Offline)
|
|
21.05.2011, 09:01
|
#24
|
Знающий
Регистрация: 25.10.2009
Сообщений: 338
Написано 53 полезных сообщений (для 61 пользователей)
|
Ответ: File Manager и ОС
если надо с первой точки то не прибавляй 1 к положению точки...
|
(Offline)
|
|
21.05.2011, 10:37
|
#25
|
ПроЭктировщик
Регистрация: 22.10.2010
Сообщений: 196
Написано 16 полезных сообщений (для 30 пользователей)
|
Ответ: File Manager и ОС
im_zorg а расширение то на самом деле bak. Я про это говорю.
Расширение это то что указывается после последний точки
пример:
txtfile.txt = .txt
mp3file.mp3 = .mp3
txtmp3File.txt.mp3 = .mp3
Можешь даже проверить указав на компьютере такое имя файла он выдаст последнее расширение
__________________
Для меня нет ничего не реального в кодинге, но мне лень
gainOS - прорыв в проектировании ОС на MIDlet Pascal
|
(Offline)
|
|
22.05.2011, 23:14
|
#26
|
Знающий
Регистрация: 14.05.2010
Сообщений: 297
Написано 13 полезных сообщений (для 13 пользователей)
|
Ответ: File Manager и ОС
ну просто очень прошу: помогите!!! Наведите пример простенького ФМ'a. ПРосто чтобы брал диски, можно переместиться в них, увидеть папки\файлы. Остальное сам доделаю...
просто ну ОЧЕНЬ нужно, а я даже представления не имею как делать
__________________
G502, GT S5230w user!
|
(Offline)
|
|
22.05.2011, 23:25
|
#27
|
Знающий
Регистрация: 14.05.2010
Сообщений: 297
Написано 13 полезных сообщений (для 13 пользователей)
|
Ответ: File Manager и ОС
Вот демка
Примечание: на рабочем столе плеер требует файл
mmc/8419a9368f6f.mp3
В приложении-редакторе "папка" в окне "С чего начать" требует root/imag.jpg
Сохранения картинок в обеих приложениях происходит в папку root/
__________________
G502, GT S5230w user!
|
(Offline)
|
|
23.05.2011, 12:25
|
#28
|
ПроЭктировщик
Регистрация: 22.10.2010
Сообщений: 196
Написано 16 полезных сообщений (для 30 пользователей)
|
Ответ: File Manager и ОС
И так. Краткий курс по созданию ФС. Рассмотрю только как получить список дисков, как их правильно нарисовать, и как перейти к сл. папке.
1. Получаем список каталогов, диков
unit FS; interface function GetList: string; procedure GetRoots; procedure GetDirs(add: boolean; path: string); procedure GetFiles(add: boolean; path: string); implementation uses jsr75i; var list: string; список файлов будем заносить сюда //Для того, чтобы её нельзя было изменить из внешнего модуля сделаем эту переменную только для чтения function GetList: string; begin GetList:= list; endfunction //Теперь получим список дисков procedure GetRoots; begin list:= jsr75i.get_roots; end; //А тут получим список папок procedure GetDirs(add: boolean; path: string); //add - добавить это в list или записать по новой //path - путь begin if add then list:= list+jsr75i.get_dirs(path) else list:= jsr75i.get_dirs(path); end; //Список файлов procedure GetFiles(add: boolean; path: string); //параметры аналогичны GetDirs begin if add then list:= list+jsr75i.get_files(path) else list:= jsr75i.get_files(path); end;
2 теперь как нам нарисовать это все.
... uses parse {самое главное},fs;//наш модуль ... procedure RenderItem(item: string; x,y: integer); begin //тут рисуем конкретный айтем. Например //item - имя файла, папки, диска drawText(item); end; procedure RenderPath(path: string); var i: integer; list: string; begin //Получим список нужных элементов //если path = :: значит мы будем получать список дисков, иначе список файлов и папок if path = '::' then fs.GetRoots else begin fs.GetDirs(false,path); fs.GetFiles(true,path); end; list:= fs.GetList; //Теперь надо разбить на элементы массива parse.clear; parse.line(list,'|'); //Теперь можно рисовать for i:= 0 to parse.len-1 do RenderItem(parse.Get(i),5,i*15+5); //Заместо 5,i*15+5 указываешь нужный закон для указания координат. Здесь просто выводиться в столбик end;
Ну вот и все =)
Ещё советую завести переменную для хранения текущего пути. И во время перехода к сл. папке просто прибавляй название папки к текущему пути и заного вызывай процедуру рендера.
__________________
Для меня нет ничего не реального в кодинге, но мне лень
gainOS - прорыв в проектировании ОС на MIDlet Pascal
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.05.2011, 17:14
|
#29
|
Знающий
Регистрация: 14.05.2010
Сообщений: 297
Написано 13 полезных сообщений (для 13 пользователей)
|
Ответ: File Manager и ОС
Сяду разбирать. Спасибо
__________________
G502, GT S5230w user!
|
(Offline)
|
|
24.05.2011, 08:21
|
#30
|
Знающий
Регистрация: 14.05.2010
Сообщений: 297
Написано 13 полезных сообщений (для 13 пользователей)
|
Ответ: File Manager и ОС
Error, unit name must contain at least 2 characters
__________________
G502, GT S5230w user!
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:55.
|