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 ?
Annonceindlæg fra DE-CIX
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
16. marts 2004 - 07:21
#2
newstring = malloc((len(Str)+SIZE)*sizeof(char)); sprintf("%s%s", buffer, Str);
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.
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); }
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
16. marts 2004 - 07:27
#6
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.
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 :))
16. marts 2004 - 17:27
#9
Svar.
Kurser inden for grundlæggende programmering