Example #1
0
void TNGramBs::GetNGramStrV(
 const TStr& HtmlStr, TStrV& NGramStrV, TIntPrV& NGramBEChXPrV) const {
  TIntV NGramIdV; NGramStrV.Clr(); NGramBEChXPrV.Clr();
  TNGramBs::GetNGramIdV(HtmlStr, NGramIdV, NGramBEChXPrV);
  NGramStrV.Gen(NGramIdV.Len(), 0);
  for (int NGramIdN=0; NGramIdN<NGramIdV.Len(); NGramIdN++){
    TStr NGramStr=GetNGramStr(NGramIdV[NGramIdN]);
    NGramStrV.Add(NGramStr);
  }
}
Example #2
0
void TRegKey::GetKeyNmV(TStrV& KeyNmV) const {
  KeyNmV.Clr();
  if (!Ok){return;}
  // get subkey count
  DWORD SubKeys; // number of subkeys
  DWORD MxSubKeyNmLen; // longest subkey size
  DWORD RetCd=RegQueryInfoKey(
   hKey, // key handle
   NULL, // buffer for class name
   NULL, // length of class string
   NULL, // reserved
   &SubKeys, // number of subkeys
   &MxSubKeyNmLen, // longest subkey size
   NULL, // longest class string
   NULL, // number of values for this key
   NULL, // longest value name
   NULL, // longest value data
   NULL, // security descriptor
   NULL); // last write time
   if (RetCd!=ERROR_SUCCESS){return;}

  // retrieve subkey-names
  if (SubKeys>0){
    KeyNmV.Gen(SubKeys, 0);
    char* SubKeyNmCStr=new char[MxSubKeyNmLen+1];
    DWORD SubKeyN=0;
    forever{
      DWORD SubKeyNmCStrLen=MxSubKeyNmLen+1;
      DWORD RetCd=RegEnumKeyEx(
       hKey, // handle of key to enumerate
       SubKeyN, // index of subkey to enumerate
       SubKeyNmCStr, // address of buffer for subkey name
       &SubKeyNmCStrLen, // address for size of subkey buffer
       NULL, // reserved
       NULL, // address of buffer for class string
       NULL, // address for size of class buffer
       NULL); // address for time key last written to
      if (RetCd==ERROR_SUCCESS){
        TStr KeyNm(SubKeyNmCStr);
        KeyNmV.Add(KeyNm);
      } else {
        break;
      }
      SubKeyN++;
    }
    delete[] SubKeyNmCStr;
  }