Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
Автор: cheops (03.02.2007 в 12:25) Если в файлах ничего кроме этих записей не будет, можно поступить следующим образом
#include <iostream> #include <string> #include <stdio> using namespace std; int main() { const int LENGTH = 10000; int pos = 0; char str[LENGTH]; string name, family, temp; FILE *fp; // Читаем файл file2 c именем if((fp = fopen("file2.txt", "r")) == NULL) { cout << "Невозможно открыть файл: " << ferror(fp) << "\n"; return 1; } while(!feof(fp)) { fgets(str, LENGTH, fp); if(!strncmp(str,"<Name>",6)) name = str; if(!strncmp(str,"<Family>",8)) family = str; } // Очищаем name от тэгов <Name></Name> if(name.size()) { pos = name.find("<Name>"); if(pos >= 0) name = name.replace(pos,6,""); pos = name.rfind("</Name>"); if(pos >= 0) name = name.replace(pos, name.size() - pos,""); } // Очищаем family от тэгов <Family></Family> if(family.size()) { pos = family.find("<Family>"); if(pos >= 0) family = family.replace(pos,8,""); pos = family.rfind("</Family>"); if(pos >= 0) family = family.replace(pos, family.size() - pos,""); } // Закрываем файл fclose(fp); // Читаем файл file1 c текстом if((fp = fopen("file1.txt", "r")) == NULL) { cout << "Невозможно открыть файл: " << ferror(fp) << "\n"; return 1; } while(!feof(fp)) { fgets(str, LENGTH, fp); temp = str; pos = temp.find("$Name"); if(pos >= 0) temp = temp.replace(pos, 6, name); pos = temp.find("$Family"); if(pos >= 0) temp = temp.replace(pos, 8, family); cout << temp; } // Закрываем файл fclose(fp); return 0; }
Ваше имя:
Пароль:
Цитировать Используйте тэги для выделения текста: Код: [code][/code] Жирный: [b][/b] Наклонный: [i][/i] URL: [url][/url]
Сообщение:
Прикрепить: