
cgm2k7
Membros-
Total de itens
12 -
Registro em
-
Última visita
Sobre cgm2k7

cgm2k7's Achievements
0
Reputação
-
Olá bom dia! Estou com uma dificuldade se alguém poder me ajudar agradeço: É o seguinte, tenho um arquivo de texto com as seguintes linhas: name=idle w=60 h=105 x=61.0f y=0.0f w=62 h=100 x=63.0f y=20.7f w=78 h=89 x=67.0f y=25.0f name=walk-back ..... e assim continua.. A duvida é: como faço para pegar só os valores de name,w,h,x,y e jogar uma matriz ou vector?
-
olá boa noite a todos! Estou "tentando" desenvolver um jogo de luta em SDL2 c++, estou com o seguinte problema: tenho um loop 10 posição sendo que cada posição repete 4 EXEMPLO: na posição 0 repete 0 0 0 0 na posição 1 repete 1 1 1 1 e a sim por diante ate o numero 9, o que eu quero é que quando chegar em uma posição que eu escolher Exemplo: seu eu escolher a posição 1 execute uma ação mas somente o primeira vez que repetiu o numero 1 as outras vez que o numero 1 for repetido não execute nada. Não estou conseguindo resolver este problema não sei porque, sendo que já fiz coisa muito mais difício e complexa que isso, acho que não to pensando direito kkkk. veja um exemplo de loop... não este que estou usando não mais é parecido mesma logica. if (currentFrame == 9){ currentFrame = 0; }else{ if (slow == 4){ currentFrame++; slow = 0; } slow++ }
-
Olá bom dia.. Estou aqui de novo precisando de ajuda... Estou com o seguinte problema: Com este código abaixo, Me possibilita arrastar do Explorer e adicionar em um ListBox. uses Winapi.ShellApi; type TMyform = class(TForm) ... protected procedure WMDropFiles(var Message: TWMDropFiles); message WM_DROPFILES; ... end; procedure TMyform.WMDropFiles(var Message: TWMDropFiles); var numfiles: integer; buf: array[0..MAX_PATH] of char; begin numfiles := DragQueryFile(Message.Drop,$FFFFFFFF,nil,0); if numfiles>0 then begin Application.BringToFront; // only open 1 file at a time // - you could open more than 1 file // at a time by looping thru numfiles DragQueryFile(Message.Drop,0,buf,MAX_PATH); { call some method which opens the file - buf gets automatically typecast to a string if necessary } ListBox1.Items.Add(buf); DragFinish(Message.Drop); // clean up end; end; no formCreatte DragAcceptFiles(Handle, true); e no formDestroy DragAcceptFiles(Handle, false); o problema se eu executar o aplicar como administrador, não adiciona no listbox, isso só acontece no windows 10 já no windows 7 ultimate funcionar tudo normal. Será alguém aqui pode da uma ideia do que pode ser ?! Obrigado pela atenção...
-
olá pessoal bon dia! Venho aqui mais uma vez pedir ajuda... Estou criando um projeto, que preciso criar uma criar um arquivo binário com varais imagens dentro desse arquivo, e no cabeçalho desse arquivo tem que informar o tamanho de o inicio e fim de cada imagem. Exemplo de como ficaria o arquivo em hex: 89 44 41 54 87 22 00 00 3D 67 00 00 2C 89 00 00 os 1ª 4 caracteres seria o extensão do arquivo ".DAT" os 4 próximos seria o tamanho da imagem, e os 4 próximos seria o ponteiro de inicio da imagem, e os 4 próximo seria o ponteiro do fim da imagem... E assim com todas as imagens dentro desse arquivo.DATA https://ibb.co/ghj1WK https://www.imagemhost.com.br/image/2jf0B se alguém poder me ajuda desde já agradeço... em C puro
-
Olá o eu aqui de novo pendido ajuda: É o seguinte, tenho 3 edit: no OnChange do edit1 { edit2->Text = edit1->text; edit3->Text = edit1->text; } no OnChange do edit2 { edit1->Text = edit2->text; edit3->Text = edit2->text; } no OnChange do edit3 { edit1->Text = edit3->text; edit2->Text = edit3->text; } Quando usuário estiver digitando no edit1 sai no edit2 e edit3 como faço para não retornar para o edit1 se alguém pode me ajuda agradeço .
-
(Resolvido) Help-Me Ler string em arquivo binario
pergunta respondeu ao cgm2k7 de cgm2k7 em Delphi, Kylix
sim e já consegui . Desculpas ae foi falta de atenção minha mesmo, muito coisa na cabeça aqui que não tava pensando direito StStream.Seek(16, soFromBeginning); //localiza o offset S:= StStream.ReadString(17); // ler 17 bytes a partir do offset localizado ListBox1.Items.Add(S); -
(Resolvido) Help-Me Ler string em arquivo binario
pergunta respondeu ao cgm2k7 de cgm2k7 em Delphi, Kylix
Exemplo: const offsetV: array[0..99] of integer = (16,64,112,160,208,256,304,352,400,448,496,544,592,640,688,736,784,832,880, 928,976,1024,1072,1120,1168,1216,1264,1312,1360,1408,1456,1504,1552,1600, 1648,1696,1744,1792,1840,1888,1936,1984,2032,2080,2128,2176,2224,2272,2320, 2368,2416,2464,2512,2560,2608,2656,2704,2752,2800,2848,2896,2944,2992,3040, 3088,3136,3184,3232,3280,3328,3376,3424,3472,3520,3568,3616,3664,3712,3760, 3808,3856,3904,3952,4000,4048,4096,4144,4192,4240,4288,4336,4384,4432,4480, 4528,4576,4624,4672,4720,4768); No arquivo bin que quero ler, sem que tem vários offset (StStream.Seek(offsetV, soFromBeginning)) quero ler as strings que vem depois de cada offset encontrado e jogar em uma ListBox. -
Olá a todos. Estou com a seguinte duvida: Tenho este condigo para localizar um string especifica em um arquivo binário. procedure TForm3.Button1Click(Sender: TObject); var StStream: TStringStream; FStream: TFileStream; S, SDS : UnicodeString; begin FStream := TFileStream.Create('c:/file.bin', fmOpenRead); StStream := TStringStream.Create(''); StStream.CopyFrom(FStream, FStream.Size); SDS := StStream.DataString; try S := 'blablabla'; if Pos(S, SDS) > 0 then ListBox1.Items.Add(S); finally StStream.Free; FStream.Free; end; end; Mas o o problema é que: só localiza se eu souber o que procurar. Como faço para localizar strings em vários pontos do arquivo bin. Usando o seek() sei como localiza os pontos que quero ler, como ler as strings a partir destes pontos. Desde já agradeço.
-
vlw irmão muito obrigado, deu certo aqui. Agora uma duvida qual destas duas função é mais eficaz? consome menos processos 1ª if LisB.Items.Count > 0 then begin for I := 0 to LisB.Items.Count -1 do for j := 0 to CListB.Items.Count -1 do if CListB.Items.Strings[j] = LisB.Items.Strings[i] then CListB.Checked[j] := true; end; 2ª if LisB.Items.Count > 0 then begin for I := 0 to LisB.Items.Count -1 do begin s := LisB.Items.Strings[i] ; if CListB.Items.IndexOf(LisB.Items.Strings[i]) > 0 then CListB.Checked[CListB.Items.IndexOf(s)] := true; end; end; a 1ª que você postou ou a 2ª?
-
olá a todos preciso de ajuda de novo tenho um checklistbox1 e um listbox1, no checklistbox1 tem 5 items e no listbox1 tem 3 como faço para que no evento oncreate do form somente os items existente no listbox seja marcados no checklistbox1. Este codigo abaixo marca os 3 primeiros items do checklistbox1 for I := 0 to ListBox1.Items.Count -1 do begin if CheckListBox1.Items.IndexOf(ListBox1.Items.Strings[i]) > 0 then CheckListBox1.Checked[i] := true end;
-
Olá pessoal mais uma vez eu aqui pedindo ajuda.. É o seguinte estou desenvolvendo um aplicativo e preciso visualizar os arquivo que usuário está editando em Hex e ASCII, assim com na imagem veja abaixo: Exatamente como na imagem só que em um memo ou qualquer outro componente. Achei este código na net mas não estou conseguido adapta-lo para abrir em um memo. Se alguém pude me ajudar... Agradeço. # include <cstdlib> # include <iostream> # include <iomanip> # include <fstream> # include <ctime> using namespace std; int main ( long argc, char *argv[] ); void handle ( char file_in_name[] ); void timestamp ( void ); int main ( long argc, char *argv[] ) { char file_in_name[80]; int i; bool VERBOSE = true; if ( VERBOSE ) { timestamp ( ); cout << "\n"; cout << "HEXDUMP:\n"; cout << " C++ version\n"; cout << "\n"; cout << " Compiled on " << __DATE__ << " at " << __TIME__ << ".\n"; cout << "\n"; cout << " Produce a hexadecimal dump of a file.\n"; } // // If the input file was not specified, get it now. // if ( argc <= 1 ) { cout << "\n"; cout << "HEXDUMP:\n"; cout << " Please enter the name of a file to be analyzed.\n"; cin.getline ( file_in_name, sizeof ( file_in_name ) ); handle ( file_in_name ); } // // Otherwise, get the file(s) from the argument list. // else { for ( i = 1 ; i < argc ; ++i ) { handle ( argv[i] ); } } if ( VERBOSE ) { cout << "\n"; cout << "HEXDUMP:\n"; cout << " Normal end of execution.\n"; cout << "\n"; timestamp ( ); } system("pause"); return 0; } void handle ( char file_in_name[] ) { long int addr; unsigned char buffer[20]; long int cnt; long int cnt2; ifstream file_in; long n; // // Open the file. // file_in.open ( file_in_name ); if ( !file_in ) { cout << "\n"; cout << "HANDLE - Fatal error!\n"; cout << " Cannot open \"" << file_in_name << "\"\n"; return; } cout << "\n"; cout << "Hexdump of \"" << file_in_name << "\":\n"; cout << "\n"; cout << "Address Hexadecimal values Printable\n"; cout << "------- ----------------------------------------------- -------------\n"; cout << "\n"; // // Dump the file contents. // addr = 0; while ( 1 ) { file_in.read ( ( char * ) buffer, 16 ); cnt = file_in.gcount(); if ( cnt <= 0 ) { break; } // // Print the address in decimal and hexadecimal. // cout << setw(7) << ( int ) addr << " "; addr = addr + 16; // // Print 16 data items, in pairs, in hexadecimal. // cnt2 = 0; for ( n = 0; n < 16; n++ ) { cnt2 = cnt2 + 1; if ( cnt2 <= cnt ) { cout << hex << setw(2) << setfill ( '0' ) << ( int ) buffer[n]; } else { cout << " "; } cout << " "; } cout << setfill ( ' ' ); // // Print the printable characters, or a period if unprintable. // cout << " "; cnt2 = 0; for ( n = 0; n < 16; n++ ) { cnt2 = cnt2 + 1; if ( cnt2 <= cnt ) { if ( buffer[n] < 32 || 126 < buffer[n] ) { cout << '.'; } else { cout << buffer[n]; } } } cout << "\n"; cout << dec; if ( file_in.eof ( ) ) { break; } } file_in.close ( ); return; } void timestamp ( void ) { # define TIME_SIZE 40 static char time_buffer[TIME_SIZE]; const struct tm *tm; size_t len; time_t now; now = time ( NULL ); tm = localtime ( &now ); len = strftime ( time_buffer, TIME_SIZE, "%d %B %Y %I:%M:%S %p", tm ); cout << time_buffer << "\n"; return; # undef TIME_SIZE }
-
int Offset_Total[] = {4,52,100,148,196,244,292,340,388,436,484,532,580,628,676,724,772,820,868,916,964,1012}; path = Edit1->Text + "\\DpFileList.bin"; if((arq = fopen(path.c_str(), "w+b")) == 0){ ShowMessage("Erro ao acessar o arquivo"); } for (int i = 0; i < ListBox1->Items->Count; i++) { if(fseek(arq, Offset_Total[i], SEEK_SET)!=1){ if(fwrite(&loopRevese, 1, 1, arq)==1){ ShowMessage("Dados gravados com sucesso!"); } } } Como gravar nos Offsets 'Offset_Total[]' a quantidade de item no listbox1 reverso tipo: 9,8,7,6,5,4,3,2,1