читать лучше с начала!
На сайті розглядаються основи роботи з мультимедійною інформацією на персональному комп'ютері. Описано ряд програм для закису, обробки й відтворення звуку й зображення.
Представлено деякі Wіndows-програми комунікацій реального часу ( ІP-Телефонії).
Також сайт присвячен розробці власних програм для роботи з аудио й відео, передачі звукової й візуальної інформації в локальних мережах і Інтернеті.
Серед наших користувачів, як правило, користувачі комп'ютера в дома й в офіса, так і на починаючих розроблювачів програмного забезпечення - ми даємо основи програмування в середовищі Borland C++ Buіlder. Наша аудиторія - це, перш за все, школярі старших класів, студенти і широке коло людей, що просто використовують комп'ютер вдома й на роботі.
Напомним, мы не предоставляем готовые программы, у нас Вы не сможете скачать офис, антивирус или игру ни платно, ни бесплатно!
ПОЯСНЕННЯ
Рядка 4-8 виконують деяку перевірку на наявність помилок. Якщо
ви викликали phone з якими-небудь аргументами, виводиться повідомлення про
помилці й програма завершується. Оскільки phone управляється за допомогою
меню, вона не використовує аргументи.
Рядок 10 инициализирует змінну BASE ім'ям файлу телефонної
бази даних. Це призначення виконується за допомогою змінної HOME для
одержання вашого реєстраційного каталогу.
Рядка 12-69 являють собою один великий нескінченний цикл
while. Вся ця структура подібна до структури інших програм, управляемых за допомогою меню, які ми розглянули. Саме меню виводиться оператором echo. Текст меню НЕ виділений відступами подібно іншої частини
програми, оскільки оператор echo сприймає цей текст як літіральные дані, включаючи пробіли.
Рядок 28 читає відповідь користувача, а рядка 30-68 представляють
собою оператор case, що перевіряє значення відповіді. Якщо був нулівиття уведення, програма завершується.
Якщо була уведена буква a, вибирається опція додавання. (В
дійсності кожна опція перевіряється й на верхньому, і на нижньому
регістрі для забезпечення гнучкості). Текст програми, що відповідає
додаванню, запитує ім'я, опис і номер телефону. Якщо ви оказалисій в опції додавання випадково, використовуйте можливість повернення путим натискання повернення каретки у відповідь на запит ім'я. Однак після тего, як ви ввели ім'я, вийти вже не можна. Вам необхідно в цьому випадку
помістити в базу фіктивний запис або нажати клавішу аварійного завіршения для виходу із програми взагалі. Опис може бути довільної
довжини, однак воно не смотрится, якщо дуже довге. Після того як всі
поля уведені, весь рядок міститься в кінець бази даних. Відзначимо, що
додаються символи табуляції для розбивки запису на поля. Після цего база даних пересортировывается, щоб новий запис зайняв своє
місце за абеткою.
Якщо була уведена буква d, те вона розпізнається в рядку 45. Запрашивается видаляється имя, щоМ. Якщо вводиться тільки повернення каретки, оператор continue повертає нас назад у цикл while і знову виводиться
головне меню. Для видалення запису використана команда sed, тому
ім'я, що вводиться, повинне вказуватися точно в такому ж виді, як воно хранится у файлі. Результат видалення міститься в тимчасовий файл, который потім у рядку 51 перейменовується у вихідний файл бази даних.
Однієї з модифікацій може бути показ користувачеві того, що він собирается видаляти, і запит підтвердження. Якщо підтвердження отримане,
те дані віддаляються остаточно. Зараз зроблено так, що ви на самому
справі не знаєте, що саме збираєтеся видаляти. Тому необхідно
точно вказувати видаляється имя, щоМ. Тут обраний відносно швидкий і не
зовсім чесний підхід. А взагалі ви навіть могли б використовувати непосередньо редактор vi для пошуку й видалення.
Опція редагування в рядку 53 виконує тільки одне - викликає
редактор vi для роботи з базою телефонних номерів. Використовуючи редактор
vi, ви можете вручну зробити файл бази даних таким, як вам потрібно.
Найчастіше формат вхідних даних "пливе" через різну довжину. Всі дані
зберігаються у вільному форматі й тому їх можна як завгодно зміщати
уздовж рядка.
Коли ви редагуєте ваш файл редактором vi, всієї його команди активны. Діє навіть вихід в shell і виконання звичайних дій з
системою. Тому не забудьте припинити роботу цього shell'а, інакше
ви будете досить здивовані наприкінці робочого дня при виході із системи.
Для виходу з редактора й повернення до утиліти phone використовуйте звичайні
методи, такі як ZZ, :x і :wq.
Опція пошуку в рядку 55 запитує ім'я, яке потрібно шукати,
читає це ім'я, виводить декоративні елементи до й після даних і
використовує утиліту grep для знаходження необхідного запису. Утиліта grep
у рядку 58 використовує команду -y, що викликає нечутливість до регистру. Це означає, що ви можете робити уведення шуканого елемента
як на верхньому, так і на нижньому регістрі. Якщо не знайдено нічого, то
нічого й не виводиться на екран.
Опція перегляду починається з рядка 61. Спочатку виводиться загоспритний у фоновому режимі. Це робиться для швидкості. Насправді це
просто експеримент для того, щоб побачити, чи будуть асинхронні события робити висновок на екран синхронно. У цьому випадку це саме
так. Файл виводиться командою more. Поки утиліта more посторінково выводит файл, всієї її команди нам доступні. (Наш командний файл m у главі 4
ілюструє, що ми можемо робити за допомогою more.)
У рядку 63 виводиться повідомлення користувачеві про те, що він повинен
нажати повернення каретки. Рядок 64 виконує читання. Ця послідовникность притримує роздрукований файл даних на екрані, щоб його
рядка не пропали при зрушенні нагору. Якби цих операторів не було,
надрукувалося б головне меню й ми втратили б те, що перебувало в
верхньої частини екрана.
Рядок 66 виконує перевірку на помилки для меню в цілому. Якщо ви
увели дані, які не відповідають жодному з попередніх шаблоновий, то їм зіставляється шаблон *. У цьому випадку друкується повідомлення
про помилку, керування переходить із оператора case у кінець циклу while
і при наступній ітерації цього циклу знову друкується головне меню.
ІМ'Я: office
office Діловод
[
...]
Початок [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293] [294] [295] [296] [297] [298] [299] [300] [301] [302] [303] [304] [305] [306] [307] [308] [309] [310] [311] [312] [313] [314] [315] [316] [317] [318] [319] [320] [321] [322] [323] [324] [325] [326] [327] [328] [329] [330] [331] [332] [333] [334] [335] [336] [337] [338] [339] [340] [341] [342] [343] [344] [345] [346] [347] [348] [349] [350] [351] [352] [353] [354] [355] [356] [357] [358] [359] [360] [361] [362] [363] [364] [365] [366] [367] [368] [369] [370] [371] [372] [373] [374] [375] [376] [377] [378] [379] [380] [381] [382] [383] [384] [385] [386] [387] [388] [389] [390] [391] [392] [393] [394] [395] [396] [397] [398] [399] [400] [401] [402] [403] [404] [405] [406] [407] [408] [409] [410] [411] [412] [413] [414] [415] [416] [417] [418] [419] [420] [421] [422] [423] [424] [425] [426] [427] [428] [429] [430] [431] [432] [433] [434] [435] [436] [437] [438] [439] [440]