На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование под PalmOS"
Правила раздела просты:
1. Будьте вежливыми.
2. Задавате вопросы только по теме. Пользовательские вопросы (у меня не работает пальм) являются оффтопиком. Пользуйтесь конференциями palmz.in, hpc.ru, ihand.ru .
3. Поиск вареза запрещен.
4. Пользуйтесь поиском. Не надейтесь, что кому-то доставляет удовольствие отвечать в сотый раз на один и тот же вопрос.
  
> Стандартные имена для дисков, какие они?
    Есть ли на Palm стандартные имена для дисков, которые бы позволяли сказать, что это съемная SD-карта, а вот это внутренняя карточка (вроде как на T5 такая есть)? Т.е. чтобы пользователь мог написать что-то вроде SDCard:/text.txt и был уверен, что он обращается к файлу на SD-карте, а не где-то еще.
    И еще не понятно, как связать такое имя с номером тома, который требуется указывать в функциях VFS Manager-а при работе с файлами.
      Нет никаких стандартных имен. Единственный идентификатор собственно ПАМЯТИ (RAM) CardNo=0. Остальные значения могут обозначать все, что угодно, MS, CF, SD, эмулятор (RAM-диск) или еще что.
        Попробую объяснить, что я хочу, может, удастся найти приемлемое решение.
        Нужно получить доступ к файлу, указав его имя и полный путь к нему. В текстовом виде, не выбирая через графический интерфейс. Естественно, должно быть однозначное соответствие с полным именем и расположением на нужном диске.
        Разные программы на Palm обзывают карточку по-разному. На моем TE я обнаружил варианты: Card: -Card-: (Secure Digital) A: 0: slot1:. Но у меня карточка одна, никаких RAM-дисков и встроенных томов нет. Поэтому любой вариант означает SD-карту.
        Если стандартных имен нет, то можно именовать по-своему. Например, A: B: C: и т.д. Когда карта одна, то понятно, что A: это именно она.
        А если томов несколько? Как указать именно тот, который нужен? Перебирать методом тыка? Посмотреть в системе название нужного диска нельзя, т.к. каждая программа именует их, как заблагорассудится.
        Что посоветуете?
          Цитата andrufka @

          Если стандартных имен нет, то можно именовать по-своему. Например, A: B: C: и т.д. Когда карта одна, то понятно, что A: это именно она.
          А если томов несколько? Как указать именно тот, который нужен?
          Что посоветуете?

          CardNo+0x41

          Тогда RAM будет А, первый слот (флэшка) - В, второй - С и так далее. Смысла никакого, потому как на разных машинках нумерация слотов может не совпадать. Но CardNo=0 всегда RAM. А если слот для флэшки один, его CardNo всегда 1. Но на NVFS машинках могут быть нюансы.
          Сообщение отредактировано: Razoff -
            Если верить тому, что сказано в Reference (номер тома может меняться каждый раз при монтировании тома), то такой метод не подойдет. Если номер тома может измениться, то при одном запуске B:/text.txt будет файлом на SD-карте, а при следующем запуске (например, после Soft-reset) - на каком-нибудь другом диске.
              Ну, считайте его номером итерации цикла VFSVolumeEnumerate.
                в общем виде задача не решается. ибо поочередное вытаскивание-вставление карточек может запросто изменить их порядок.

                можно нумеровать карточки в зависимости от типа слота: SD#1, SD#2, CF#1, RAM#1...При показе #1 можно опускать. Номер дается итерацией карты этого типа в VFSVolumeEnumerate. Для устройств с одинаковыми слотами типа зодиака их порядок SD-карт по-моему жестко определен. А у остальных производителей вроде не было однотипных слотов.
                  Цитата igor_n @
                  можно нумеровать карточки в зависимости от типа слота: SD#1, SD#2, CF#1, RAM#1...

                  Попробую такой вариант. Пробежать по VFSVolumeEnumerate(), смотря mediaType в VFSVolumeInfo(). Думаю, что 'sdig' (Secure Digital) и 'mmcd' (MultiMedia Card) можно объединить как SD. Для карт SDHC есть свое значение mediaType?
                  Непонятно, как разрулить случай с одинаковыми слотами. Если в первом слоте нет карточки, то SD#1 укажет на слот #2.
                    Цитата andrufka @
                    Есть ли на Palm стандартные имена для дисков

                    Нет, а нафик они там нужны...

                    Цитата andrufka @
                    Т.е. чтобы пользователь мог написать что-то вроде SDCard:/text.txt и был уверен, что он обращается к файлу на SD-карте, а не где-то еще.

                    если пользователь ручками что-то пишет без использования GUI, то обычно это пользователь в теме, ну напиши в хэлпе, что типа Card#1:/xxxx.ext это типа файло на карточке в первом слоте, а Card#2:/xxxx.ext файло на карточке во втором слоте и т.п., а если пользователь не знает в каком слоте что у него торчит, то зачем его напрягать ручным вводом...

                    Цитата andrufka @
                    И еще не понятно, как связать такое имя с номером тома, который требуется указывать в функциях VFS Manager-а при работе с файлами.

                    да всё понятно, при перечислении VFSVolumeEnumerate первая карточка - Card#1, и т.п., а если речь идёт об уникальном соответствии, то такого нет и на писюках - USB флэшки для примера - воткнул одну - буква такая-то, вытащил, воткнул другую - та же буква, можно, конечно, нашаманить каждой флэшке свою букву, но если флэшек больше, чем букв, то ничего не сделаешь...

                    Цитата andrufka
                    Естественно, должно быть однозначное соответствие с полным именем и расположением на нужном диске.

                    ...в таком случае, пользователь должен знать, что при перетыкании карточек, Card#1 пожет смениться на Card#2 и наоборот. можно было бы использовать volume label, но опять же, нет уникальности.

                    короче, не парь юзера ручным вводом :-)

                    Сообщения были разделены в тему "Флуд"
                      :-?
                        :no-sad:
                          ;)
                          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script Execution time: 0,0931 ]   [ 15 queries used ]   [ Generated: 7.12.19, 06:05 GMT ]