¥È¥Ã¥× º¹Ê¬ °ìÍ÷ ¥½¡¼¥¹ ¸¡º÷ ¥Ø¥ë¥× RSS ¥í¥°¥¤¥ó

BugTrack-£ÒÈ÷˺Ͽ/30

£ÒÈ÷˺Ͽ /¾õÂÖ¶õ´Ö¥â¥Ç¥ê¥ó¥°/donlp2/¤½¤Î¾¤Î¥á¥â

£ÒÈ÷˺Ͽ - µ­»ö°ìÍ÷

C¸À¸ì¤ÎAPI tips­¡¡Êʸ»úÎó´ØÏ¢¡Ë

  • Åê¹Æ¼Ô¡§ ¤ß¤å
  • ¥«¥Æ¥´¥ê¡§ ¤Ê¤·
  • Í¥ÀèÅÙ¡§ ÉáÄÌ
  • ¾õÂÖ¡§ ´°Î»
  • Æü»þ¡§ 2009ǯ06·î09Æü 08»þ03ʬ38ÉÃ

ÆâÍÆ

  • ʸ»úÎó´ØÏ¢

ʸ»úÎó´ØÏ¢

  • SET_STRING_ELT
    • °Ê²¼¤Î´Ø¿ôÄêµÁ¤Ï¡ÖSET_STRING_ELT¡×¤Î»ÈÍÑÎã
SEXP strSplit(SEXP str)
{
  SEXP ret;
  char *xi, *pp;
  char p[] =" ";
  int ii;

  pp = p;
  xi = CHAR(STRING_ELT(str, 0));
  PROTECT(ret = allocVector(STRSXP, 1+strlen(xi)));  //ʸ»úÎóSTRSXP¤Ç¥Ù¥¯¥È¥ë¤ò³ÎÊÝ
  SET_STRING_ELT(ret, 0, mkChar(pp));  //ÉÕÃͤ¹¤ë¤Î¤Ï¡ÖCHARSXP¡×ÊÑ¿ô¤Ç¤Ê¤¤¤È¤¤¤±¤Ê¤¤
  for( ii=0; ii<strlen(xi); ii++ ){
    SET_STRING_ELT(ret, ii+1, mkChar(pp));
    CHAR(STRING_ELT(ret, ii+1))[0] = xi[ii];
  }
  UNPROTECT(1);
  return ret;
}
  • mkChar¤ÎÄêµÁ¡Ê¡ÖRinlinedfuns.h¡×¤ÎÃæ¡Ë
/* mkChar - make a character (CHARSXP) variable */
INLINE_FUN SEXP mkChar(const char *name)
{
    SEXP c = allocString(strlen(name));
    strcpy(CHAR(c), name);
    return c;
}

¥³¥á¥ó¥È