powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / перевод кода из delphi в с++
6 сообщений из 6, страница 1 из 1
перевод кода из delphi в с++
    #37168933
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
перевод кода из delphi в с++
    #37168938
cepera666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то есть вот так:

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
перевод кода из delphi в с++
    #37168983
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не работает молча?
...
Рейтинг: 0 / 0
перевод кода из delphi в с++
    #37171112
cepera666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
оказывается, в итоге проблема была вот в чем:
мне нужно изменять файл, т.е. открыть нужно было так:

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
перевод кода из delphi в с++
    #37171141
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cepera666,

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


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