fork download
  1.  
  2. #include <stdio.h>
  3. #include <dstring.h>
  4. #include <iostream>
  5. #include <fstream>
  6. #include <sysmac.h>
  7. #include <System.hpp>
  8.  
  9. class ImpFromTxt
  10. {
  11. AnsiString S1; //переменная для выбранного текста из файла
  12. AnsiString buf; //буферная переменная для записи необходимых слов
  13.  
  14.  
  15. public:
  16.  
  17. AnsiString Import(const char* Aftr, int Chislo=0, ...)
  18. { //^число слов после которых необходимо вычленить слова
  19. // using namespace std;
  20.  
  21. size_t count=0; //Число символов в файле
  22. char S; //для подсчета символов
  23. const char* word_before = "Точка: "; //слово, после которого необходимо выделить слово
  24. /*Просто считаем число символов*/
  25. ifstream f(Aftr);
  26. while (!f.eof())
  27. {
  28. f.get(S);
  29. count++;
  30. }
  31. f.close();
  32.  
  33. /*Добавляем текст в переменную*/
  34.  
  35. char *S2=new char [count]; //Выделяем память по определенному числу символов
  36. for (int i=0;i<count;i++) S2[i]=NULL; //Очищаем строку от хлама
  37. ifstream f2(Aftr); //создаем поток для работы с файлом
  38. int i=0; //куроср на текущий символ (как номер буквы в слове)
  39.  
  40. while (!f2.eof()) //Проходим ао файлу
  41. {
  42. f2.get(S2[i]); //Записываем симыол за символом
  43. i++; //передвинули курсор для записи следующего символа
  44. }
  45.  
  46. f2.close(); //закончили работу с файлом
  47. S1 = S2;
  48. // cout<<S2<<endl; //Теперь переменная char[] содержит текст из файла
  49.  
  50. delete []S2; //освобождаем память
  51. /**************************************/
  52. switch (Chislo) //цикл для выбора количества видов слов
  53. { //слова будут собираться в буферной переменной
  54. //для возвращения в основную программу
  55.  
  56. case 2:
  57. break;
  58. case 1: { // TX;
  59. while (S1.Pos(word_before))
  60. {
  61. char buf1[100]= " ";
  62. int j=0;
  63. i=(S1.Pos(word_before)) ? (S1.Pos(word_before)+strlen(word_before)) : 0;
  64. int M = S1.Pos(word_before); //индекс первой буквы Т в первом нахождении слова Точка
  65. int L = S1.Length(); //длинна всего текста
  66.  
  67. if (i)
  68. while (S1[i] != '\n')
  69. {
  70. buf1[j]=S1[i];
  71. j++;
  72. i++;
  73. }
  74. buf1[strlen(buf1)] = '\r';
  75. buf1[strlen(buf1)] = '\n';
  76. buf += buf1;
  77. //buf = buf.Insert((S1.SubString(S1.Pos("Точка:")+8,5)),(S1.Pos("Точка:")+8));
  78. S1 = S1.SubString(S1.Pos(word_before)+strlen(buf1)-1+strlen(word_before),S1.Length()-(S1.Pos(word_before)+strlen(word_before)+strlen(buf1)-2));
  79. //-1 и -2 в этом присваивании поставлены для компенсации добавленных лишних символов \r \n
  80. L = S1.Length();
  81. }
  82. }
  83. break;
  84.  
  85.  
  86.  
  87.  
  88. case 3:
  89. break;
  90.  
  91.  
  92. default:
  93. ;
  94. }
  95.  
  96. return buf;
  97. }
  98. };
  99.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:3:21: fatal error: dstring.h: No such file or directory
 #include <dstring.h>
                     ^
compilation terminated.
stdout
Standard output is empty