// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Copyright ( C ) 2003 - 2006 , International Business Machines
* Corporation and others . All Rights Reserved .
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* file name : genres32 . c
* encoding : UTF - 8
* tab size : 8 ( not used )
* indentation : 4
*
* created on : 2003 sep10
* created by : Markus W . Scherer
*
* Write an ICU resource bundle with a table whose
* number of key characters and number of items both exceed 64 k .
* Writing it as the root table tests also that
* the new table type is recognized for the root resource by the reader code .
*/
#include <stdio.h>
#include "unicode/putil.h"
#include "cstring.h"
#include "gentest.h"
static void
incKey(
char *key,
char *limit) {
char c;
while (limit>key) {
c=*--limit;
if (c==
'o' ) {
*limit=
'1' ;
break ;
}
else {
*limit=
'o' ;
}
}
}
U_CFUNC
int
genres32(
const char *prog,
const char *path) {
/*
* key string , gets incremented binary numbers
* letter ' o ' = 0 and digit ' 1 ' = 1 so that data swapping can be tested
* with reordering ( ASCII : ' 1 ' < ' o ' EBCDIC : ' 1 ' > ' o ' )
*
* need 17 digits for > 64 k unique items
*/
char key[
20 ]=
"ooooooooooooooooo" ;
char *limit;
int i;
char file[
512 ];
FILE *out;
uprv_strcpy(file,path);
if (file[strlen(file)-
1 ]!=U_FILE_SEP_CHAR) {
uprv_strcat(file,U_FILE_SEP_STRING);
}
uprv_strcat(file,
"testtable32.txt" );
out = fopen(file,
"w" );
/*puts(file);*/
puts(
"Generating testtable32.txt" );
if (out == NULL) {
fprintf(stderr,
"%s: Couldn't create resource test file %s\n" ,
prog, file);
return 1 ;
}
/* find the limit of the key string */
for (limit=key; *limit!=
0 ; ++limit) {
}
/* output the beginning of the bundle */
fputs(
"testtable32 {" , out
);
/* output the table entries */
for (i=
0 ; i<
66000 ; ++i) {
if (i%
10 ==
0 ) {
/*
* every 10 th entry contains a string with
* the entry index as its code point
*/
fprintf(out,
"%s{\" \\U%
08 x\
"}\n" , key, i);
}
else {
/* other entries contain their index as an integer */
fprintf(out,
"%s:int{%d}\n" , key, i);
}
incKey(key, limit);
}
/* output the end of the bundle */
fputs(
"}" , out
);
fclose(out);
return 0 ;
}
Messung V0.5 in Prozent C=90 H=77 G=83
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland