Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / перевод кода из delphi в с++ / 6 сообщений из 6, страница 1 из 1
17.03.2011, 00:28
    #37168933
cepera666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод кода из delphi в с++
привет! в общем, проблема такая: есть рабочее приложение на delphi. нужно перевести его на с++.
не знаю, куда тему запихнуть)
поскольку не работает, вопрос к экспертам, может, ошибка очевидна?

delphi:

Код: plaintext
1.
f:=TFileStream.Create(FileName, fmOpenReadWrite);
f.Seek( 6 ,soFromBeginning);


у меня в с++:
Код: plaintext
1.
pFile = fopen ( FileName, "rb" );
fseek ( pFile ,  6  , SEEK_SET );


и еще пару кусков:

delphi:

Код: plaintext
1.
2.
3.
4.
5.
6.
l1:=byte(str[i])  shr   4 ;
l2:=(byte(str[i])  shl   4 ); l2:=l2  shr   4 ;

f.ReadBuffer(tmp, 1 );
f.Position:=f.Position- 1 ;
tmp:=((tmp  shr   4 )  shl   4 )+l1;
f.WriteBuffer(tmp, 1 );


у меня в с++:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
unsigned char l1 = str[i] <<  4 ;
unsigned char l2 = str[i] <<  4 ; 
l2 = l2 <<  4 ;

unsigned char tmp;
fpos_t pos;		

fread (&tmp, 1 , 1 ,pFile);
								
fgetpos (pFile,&pos);
pos -=  1 ;
fsetpos (pFile,&pos);

tmp = ((tmp <<  4 ) <<  4 )+l1;

fwrite (&tmp ,  1  ,  1  , pFile );
...
Рейтинг: 0 / 0
17.03.2011, 00:40
    #37168938
cepera666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод кода из delphi в с++
то есть вот так:

delphi:

Код: plaintext
1.
f:=TFileStream.Create(FileName, fmOpenReadWrite);
f.Seek( 6 ,soFromBeginning);


у меня в с++:
Код: plaintext
1.
pFile = fopen ( FileName, "rb" );
fseek ( pFile ,  6  , SEEK_SET );


и еще пару кусков:

delphi:

Код: plaintext
1.
2.
3.
4.
5.
6.
l1:=byte(str[i])  shr   4 ;
l2:=(byte(str[i])  shl   4 ); l2:=l2  shr   4 ;

f.ReadBuffer(tmp, 1 );
f.Position:=f.Position- 1 ;
tmp:=((tmp  shr   4 )  shl   4 )+l1;
f.WriteBuffer(tmp, 1 );


у меня в с++:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
unsigned char l1 = str[i] >>  4 ;
unsigned char l2 = str[i] <<  4 ; 
l2 = l2 >>  4 ;

unsigned char tmp;
fpos_t pos;		

fread (&tmp, 1 , 1 ,pFile);
								
fgetpos (pFile,&pos);
pos -=  1 ;
fsetpos (pFile,&pos);

tmp = ((tmp >>  4 ) <<  4 )+l1;

fwrite (&tmp ,  1  ,  1  , pFile );
...
Рейтинг: 0 / 0
17.03.2011, 03:39
    #37168983
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод кода из delphi в с++
Не работает молча?
...
Рейтинг: 0 / 0
17.03.2011, 22:13
    #37171112
cepera666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод кода из delphi в с++
оказывается, в итоге проблема была вот в чем:
мне нужно изменять файл, т.е. открыть нужно было так:

pFile = fopen ( "example.bmp" , "a+" );

и, т.к. я его хочу изменить, то нужно менять начало файла

fseek ( pFile , 6 , SEEK_SET );

но он никак не идет в начало:

автор="cplusplus.com"All writing operations are performed at the end of the file, protecting the previous content to be overwritten. You can reposition (fseek, rewind) the internal pointer to anywhere in the file for reading, but writing operations will move it back to the end of file. The file is created if it does not exist.


как лучше поступить?
...
Рейтинг: 0 / 0
17.03.2011, 22:54
    #37171141
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод кода из delphi в с++
cepera666,

Лучше всего прочитать документацию: http://www.manpagez.com/man/3/fopen/
На первой же странице увидишь список возможных режимо открытия файла.
...
Рейтинг: 0 / 0
17.03.2011, 23:32
    #37171177
cepera666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод кода из delphi в с++
блин, правда, как-то тупо. вроде бы и читал, хоть и не тут, но пропустил, нужно было r+, спасибо!
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / перевод кода из delphi в с++ / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]