Avatar billede bjering Nybegynder
16. marts 2004 - 07:12 Der er 8 kommentarer og
1 løsning

Ligge 2 tekster sammen og skrive i en win32 app. listbox

først lige en bitte smule kode

#define SIZE 256

void WriteDataStr(HWND hwnd, char* Str)
{
  char buffer[SIZE];
  const char *newstring;
  time_t curtime;
  struct tm *loctime;
  curtime = time (NULL);
  loctime = localtime (&curtime);
  strftime (buffer, SIZE, "%H:%M:%S : ", loctime);

  newstring = (buffer, Str);

  SendMessage(hwnd, LB_ADDSTRING , 0, (LPARAM)(LPSTR)newstring);
}

okay så spørgsmålet, hvordan ligger jeg buffer og Str samme til en ny text streng til at smide i min listbox ?

som i kan se har jeg prøvet selv (newstring) men den smider kun Str ind i min listbox, og ikke min tid oxo..

lige nu ser det sådan ud:

Hello (hvis jeg addder hello)

skulle gerne have den til at se sådan her ud:

19:12:32 : Hello

hvordan kan jeg smide dem sammen så jeg får det ?
Avatar billede soreno Praktikant
16. marts 2004 - 07:20 #1
Kan du lure hvordan du skal gøre ved at kigge lidt på dette eksempel:

#include <stdio.h>
#include <string.h>

int main()
{
    char *str1 = "Hello";
    char *str2 = " World";
    char buffer[256];
   
    strcpy(buffer, str1);
    strcat(buffer, str2);
    printf("%s\n", buffer);

    sprintf(buffer, "%s :: %s", str1, str2);
    printf("%s\n", buffer);
       
    return 0;
}

Output:
Hello World
Hello ::  World
Avatar billede the_bma_man Nybegynder
16. marts 2004 - 07:21 #2
newstring = malloc((len(Str)+SIZE)*sizeof(char));
sprintf("%s%s", buffer, Str);
Avatar billede the_bma_man Nybegynder
16. marts 2004 - 07:23 #3
soreno > den er farlig. Der  antager du, at 255 tegn altid er nok til at indeholde concatineringen af de to strenge.
Det undgår du ved, som bjering, at bruge en char * til at holde den nye streng.
MEN - så skal den også lige allokeres.
Avatar billede bjering Nybegynder
16. marts 2004 - 07:23 #4
jups, smider du et svar ?

btw :

void WriteDataStr(HWND hwnd, char* Str)
{
  char buffer[SIZE];
  time_t curtime;
  struct tm *loctime;
  curtime = time (NULL);
  loctime = localtime (&curtime);
  strftime (buffer, SIZE, "%H:%M:%S : ", loctime);

  char *str1 = buffer;
  char *str2 = Str;
  char Strbuffer[256];
  strcpy(Strbuffer, str1);
  strcat(Strbuffer, str2);

 
  //int nLen=SendMessage(hwnd, WM_GETTEXTLENGTH, 0, 0);
  SendMessage(hwnd, LB_ADDSTRING , 0, (LPARAM)(LPSTR)Strbuffer);
}
Avatar billede bjering Nybegynder
16. marts 2004 - 07:24 #5
bufferen er kontroleret, med det mener jeg den kommer aldrig over 100 chars (jeg skriver altid det der kommer i den, så i dette tilfælde virker soreno's fint
Avatar billede soreno Praktikant
16. marts 2004 - 07:27 #6
Avatar billede bjering Nybegynder
16. marts 2004 - 08:54 #7
soreno svarer du ikke ?

starter lige oxo en ny ting jeg har problem med hvis nogen er int. i at hjælpe.
Avatar billede bjering Nybegynder
16. marts 2004 - 11:34 #8
giver soreno indtil i aften, ellers får the_bma_man dem bare (han prøvede jo oxo at give en hånd med :))
Avatar billede soreno Praktikant
16. marts 2004 - 17:27 #9
Svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester