 |
Основной форум Сюда все проблемы связанные с программированием. |
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, время: 18:13.
|