Home | History | Annotate | Download | only in far
      1 
      2 // Licensed under the Apache License, Version 2.0 (the "License");
      3 // you may not use this file except in compliance with the License.
      4 // You may obtain a copy of the License at
      5 //
      6 //     http://www.apache.org/licenses/LICENSE-2.0
      7 //
      8 // Unless required by applicable law or agreed to in writing, software
      9 // distributed under the License is distributed on an "AS IS" BASIS,
     10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     11 // See the License for the specific language governing permissions and
     12 // limitations under the License.
     13 //
     14 // Copyright 2005-2010 Google, Inc.
     15 // Author: jpr (at) google.com (Jake Ratkiewicz)
     16 
     17 #include <fst/extensions/far/compile-strings.h>
     18 #include <iostream>
     19 #include <fstream>
     20 #include <sstream>
     21 
     22 DEFINE_string(far_field_separator, "\t",
     23               "Set of characters used as a separator between printed fields");
     24 
     25 namespace fst {
     26 
     27 // Compute the minimal length required to
     28 // encode each line number as a decimal number
     29 int KeySize(const char *filename) {
     30   ifstream istrm(filename);
     31   istrm.seekg(0);
     32   string s;
     33   int nline = 0;
     34   while (getline(istrm, s))
     35     ++nline;
     36   istrm.seekg(0);
     37   return nline ? ceil(log10(nline + 1)) : 1;
     38 }
     39 
     40 }  // namespace fst
     41