Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
hyperspace

Обработка файла указанного в пути

18.11.2009, 14:17. Показов 1114. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "clanfun.h"
 
void main(int argc, char* argv)
{
    int width, height ;
    int byte ;
    int flen;
    int *mas ;
    int i;
    char* msk = mask;
    char* msk1 = mask1;
    char* msk2 = mask2;
    char* msk3 = mask3;
    char* msk4 = mask4;
    char* msk5 = mask5;
    char* msk6 = mask6;
    struct BMPFHeader FBMP;
    struct BMPInfoHeader IBMP;
    struct RGB *rgb;
    struct HSI *hsi;
    char* name;
    char* name1;
        system("clear");
        [COLOR="Red"]fprintf(stdout,"argc = %d symbols\n", argc);[/COLOR]
        for(i=0;argv[i]!=NULL;i++)
        {
            [COLOR="Red"]fprintf(stdout,"%c", argv[i]);[/COLOR]
        }
        [COLOR="SeaGreen"] name = "/home/alexey/nissan_GT-R"; [/COLOR] // Имя обрабатываемого файла
    byte = 0;
    if(BMPInfo(&FBMP, &IBMP, name)!=0)
    {
       fprintf(stdout,"Type = %c%c\n", (FBMP.Type)>>8,(FBMP.Type)&255);
        fprintf(stdout,"filesize = %.2lf kB\tData begin at %d byte\nPictureSize = %dx%d pixels\n", (FBMP.Size)/1024.,
            FBMP.OffBits,IBMP.Width,IBMP.Height);
        fprintf(stdout,"Planes = %d\tBitCount = %d\n",IBMP.Planes, IBMP.BitCount );
        fprintf(stdout,"Compression = %d\tSizeImage = %.2lf kB\n",IBMP.Compression, IBMP.SizeImage/1024. );
        fprintf(stdout,"XPelsPerMeter = %d\tYPelsPerMeter = %d\n",IBMP.XPelsPerMeter, IBMP.YPelsPerMeter );
        fprintf(stdout,"ClrUsed = %d\tClrImportant = %d\n",IBMP.ClrUsed, IBMP.ClrImportant );
        byte = 1;
    }
    else
    {
        fprintf(stdout,"this is not BMP file\n");
        exit(1);
    }
    if(byte == 1)
    {
      mas = malloc(4*IBMP.Width*IBMP.Height) ;
      if(mas == NULL)
      {
        fprintf(stdout,"No free memory\n");
        exit(1) ;
      }
      ReadImage(&FBMP, &IBMP, mas, name);
      rgb = malloc(3*IBMP.Width*IBMP.Height);
      hsi = malloc(3*8*IBMP.Width*IBMP.Height);
      if(rgb == NULL)
      {
        fprintf(stdout,"No free memory\n");
        exit(1) ;
      }
      IntToRGB(rgb,mas,IBMP.Width*IBMP.Height);
          Negative(rgb,IBMP.Width*IBMP.Height);
      RGBToHSI(rgb, hsi, IBMP.Width*IBMP.Height);
          Filter(hsi,&IBMP, 1, msk5);
          Filter(hsi,&IBMP, 20, msk);
          HSIToRGB(rgb, hsi, IBMP.Width*IBMP.Height);
          RGBToInt(rgb,mas,IBMP.Width*IBMP.Height);
          name1 = "/home/alexey/nissan_GT-R_1.bmp";
      WriteImage(&FBMP, &IBMP, mas, name1, name);
      free(mas);
      free(rgb);
      free(hsi);
      
    }
        
}
Требуется:
1. Обработка файла указанного в пути, например
./programm filter_type name_file_in name_file_out
Получается, что данный исходный код может позволить лишь обработку отдельных символов через пробел, но не путь к файлу как строку
Пример вывода:
./tblet /home/user_name/machine.bmp /home/user_name/machine_1.bmp

C
1
2
3
4
5
6
7
8
9
argc = 2 symbols
 
w��w��Type = BM
filesize = 5168.02 kB   Data begin at 54 byte
PictureSize = 1680x1050 pixels
Planes = 1  BitCount = 24
Compression = 0 SizeImage = 5167.97 kB
XPelsPerMeter = 2835    YPelsPerMeter = 2835
ClrUsed = 0 ClrImportant = 0
Получается, что в параметр argv[] попадает только первый символ из командной строки и ".".
Причем если ставить пробел после каждого символа все нормально. Как можно обойти такой кривой способ передачи параметров?
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2009, 14:17
Ответы с готовыми решениями:

Открытие Word файла из указанного пути
Подскажите, может кто то уже делал открытие Word файла из указанного пути. Добавлено через 2 часа 23 минуты Поиск я делал :)

Копирование файла, указанного первым аргументом, в папку, часть пути к которой указана вторым аргументом
Добрый день. Есть два задания из лабораторной работы. Я бы с радостью их сделал где угодно, кроме cmd, но увы. Есть структура: ...

Поместить картинку в DrawGrid из указанного пути
Всем доброго дня. Имеется папка с картинками (50х50). Каждой картинке соответствует свой номер (наверное сделаю с помощью if). В простом...

1
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
19.11.2009, 14:13
argv - равняется кол-ву слов в командной строке разделенными пробелом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.11.2009, 14:13
Помогаю со студенческими работами здесь

Как получить родительский каталог относительно указанного пути
Как организовать обратный переход по папкам в С#? Например: 2 папка лежит в первой, мне необходимо из 2 выйти в первую и там уже...

Как прочитать многострочные данные из файла с указанного фрагмента до указанного фрагмента?
Всех с наступающим! Есть файл с содержанием: Database: vip_stroitel Table: material +-----------+-------------+ | Column ...

Запуск bat-файла из vbs-файла от имени указанного пользователя
Здравствуйте форумчане, натолкните пожалуйста как можно реализовать выполнение bat файла такого вида: @echo off if exist...

Ни одна программа не устанавливается пишет "указанного пути не существует"
Проблема в следующем, ни одна программа не устанавливается пишет &quot;указанного пути не существует&quot;, не в один параметр системы зайти...

TASM. Копирование указанного файла (имена исходного и результирующего файла задаются в командной строке)
Нашел программу, но не смог добиться работы от нее. Описание: Пример программы (в формате DOS COM) копирования файла; имена исходного и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru