-uchar * CSA::LoadFromFile(const char *filename)
-{
- uchar *s;
- std::ifstream file (filename, std::ios::in|std::ios::binary);
- if (file.is_open())
- {
- std::cerr << "Loading CSA from file: " << filename << std::endl;
- file.read((char *)&bwtEndPos, sizeof(TextPosition));
- s = new uchar[n];
- for (ulong offset = 0; offset < n; offset ++)
- file.read((char *)(s + offset), sizeof(char));
- file.close();
- }
- else
- {
- std::cerr << "Unable to open file " << filename << std::endl;
- exit(1);
- }
- return s;
-}
-
-void CSA::SaveToFile(const char *filename, uchar *bwt)
-{
- std::ofstream file (filename, std::ios::out|std::ios::binary|std::ios::trunc);
- if (file.is_open())
- {
- std::cerr << "Writing CSA to file: " << filename << std::endl;
- file.write((char *)&bwtEndPos, sizeof(TextPosition));
- std::cerr << "Writing BWT of " << n << " bytes." << std::endl;
- for (ulong offset = 0; offset < n; offset ++)
- file.write((char *)(bwt + offset), sizeof(char));
- file.close();
- }
- else
- {
- std::cerr << "Unable to open file " << filename << std::endl;
- exit(1);
- }
-}
-
-/*uchar * CSA::BWT(uchar *text)
-{
- uchar *s;
-
- DynFMI *wt = new DynFMI((uchar *) text, n);
- s = wt->getBWT();
- for (ulong i=0;i<n;i++)
- if (s[i]==0u) {
- bwtEndPos = i; // TODO: better solution ?
- i=n;
- }
-
- delete wt;
- return s;
- }*/
-