Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 06.02.2015
Сообщений: 46

Получение текста из файла на сервере

13.02.2015, 14:07. Показов 1993. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно получить из текстового файла на сервере текст?
C++
1
2
int file= LoadFromFile("site/text.txt"); //просто так
if(file=="from")return;
Добавлено через 37 минут
то есть на сайте
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.02.2015, 14:07
Ответы с готовыми решениями:

Получение файла на сервере
помогите пожалуйста дописать код для получения файла на эхо сервере. моя программа получает текст, но проблема с получением файла....

Запись текста с файла на ftp сервере в memo
Привет всем, у меня такой вопрос как вывести текст из файла ftp сервере в memo, именно вывести, не скачать а потом прочесть. делаю...

Запись текста в нужную строку файла на сервере
Привет, пытаюсь записать все в файл на сервере, но у меня не вышло, поэтому я создаю файл а потом закачиваю его на сервер. ВОт так: ...

14
Native x86
Эксперт Hardware
 Аватар для quwy
6853 / 3787 / 1024
Регистрация: 13.02.2013
Сообщений: 11,861
13.02.2015, 14:18
TidHTTP, примеров на этом форуме тьма тмущая.
1
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
13.02.2015, 14:23
можно с помощью IdHTTP
C++
1
UnicodeString text = IdHTTP1->Get("http://my_site/text.txt");
Добавлено через 43 секунды
quwy, опередил )))
1
0 / 0 / 0
Регистрация: 06.02.2015
Сообщений: 46
13.02.2015, 20:53  [ТС]
C++
1
2
3
4
5
6
7
 if( IdHTTP1->Get("http://lololol.esy.es/version/BTVersion.txt") == Label11->Caption)
 {
     ShowMessage("У вас последняя версия");
 }else
 {
    ShowMessage(IdHTTP1->Get("http://lololol.esy.es/version/BTVersion.txt"));
 }
403 ошибка
0
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
13.02.2015, 21:20
Цитата Сообщение от Senchick Посмотреть сообщение
403 ошибка
тока ошибка 404 там
0
0 / 0 / 0
Регистрация: 06.02.2015
Сообщений: 46
13.02.2015, 21:23  [ТС]
я не буду свой сайт палить
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,010
13.02.2015, 23:55
Код старый, на косяки (использование AnsiString, неправильную работу с потоком и т.д.) просьба внимание не обращать.
Вместо скачивания текстового файла берем страницу с сайта, но суть это почти не меняет.
Определение последней версии:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  RichEdit1->Text = IdHTTP1->Get("http://www.getdota.com/");
  int I, PosReturn;
  for (I = 0; I < RichEdit1->Lines->Count; I++)
  {
    PosReturn = RichEdit1->Lines->Strings[I].Pos("Latest Map");
    if (PosReturn) //found!
      break;
  }
  Label1->Caption = "Последняя версия: " + MidStr(RichEdit1->Lines->Strings[I], RichEdit1->Lines->Strings[I].Pos("version")+9, RichEdit1->Lines->Strings[I].Pos("</span>")-RichEdit1->Lines->Strings[I].Pos("version")-9);
  if (Label1->Caption == "Последняя версия: ")
  {
     Label1->Caption += "?";
     MessageBox(NULL, "Сервер недоступен / не удается получить номер версии карты.", "Ошибка", MB_OK + MB_ICONERROR + MB_TASKMODAL);
  }
}
Сравниваем версии и при наличии новой даем "команду" на скачивание [ThreadHTTP(0)]:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
void __fastcall TForm1::Button3Click(TObject *Sender)
{
//  IdHTTP3->Head("http://media.playdota.com/maps/rus/DotA%20v6.69c.w3x");
//  fs->Size = IdHTTP3->Response->ContentLength;
//  Label8->Caption = "размер = " + IntToStr(fs->Size) + " байт";
  AnsiString dota_ver = Trim(MidStr(Label1->Caption, 18, 6));  // 6 знаков хватит до версии 99.99z включительно
  if ((dota_ver == "?") || (dota_ver == ""))
  {
    Button1->Click();
    dota_ver = Trim(MidStr(Label1->Caption, 18, 6));
  }
  if (Label11->Caption == "текущий путь не найден")
    MessageBox(NULL, "Не найден путь к игре. Необходимо указать директорию.", "Ошибка", MB_OK + MB_ICONWARNING + MB_TASKMODAL);
  else
  {
    if ((dota_ver != "?") && (dota_ver != ""))
    {
      bool yes = 0;
      AnsiString Dir1 = MidStr(Label11->Caption, 14, Label11->Caption.Length()-13);
      Dir1 = Dir1 + "\\Maps\\Download";
      SetCurrentDir(Dir1);
      if (FileExists("DotA v" + dota_ver + ".w3x"))
        if(MessageBox(NULL, ("Файл " + GetCurrentDir() + "\\DotA v" + dota_ver + ".w3x уже существует.\nЗаменить?").c_str(), "Предупреждение", MB_YESNO + MB_ICONWARNING + MB_TASKMODAL) == IDYES)
          yes = 1;
      if (!FileExists("DotA v" + dota_ver + ".w3x") || (yes == 1))
        {
//        TFileStream* fs = new TFileStream("DotA v" + dota_ver + ".w3x", FileCreate(""));
 
//        IdHTTP3->Get("http://media.playdota.com/maps/" + lang + "/DotA%20v" + dota_ver + ".w3x", fs);
//        delete fs;
          Label9->Visible = 1;
          Label12->Visible = 1;
          Label13->Visible = 1;
          ThreadHTTP(0);
        }
    }
    else
    {
//    MessageBox(NULL, "Отправлен запрос на получение номера версии карты.", "Сообщение", MB_OK + MB_ICONINFORMATION + MB_TASKMODAL);
    }
  }
}
Скачивание файла (карты игры):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
void __fastcall ThreadHTTP::Execute()
{
    //---- Place thread code here ----
  AnsiString dota_ver = Trim(MidStr(Form1->Label1->Caption, 18, 6));  // 6 знаков хватит до версии 99.99z включительно
  AnsiString Dir1 = MidStr(Form1->Label11->Caption, 14, Form1->Label11->Caption.Length()-13);
  Dir1 = Dir1 + "\\Maps\\Download";
  SetCurrentDir(Dir1);
  TFileStream* fs = new TFileStream("DotA v" + dota_ver + ".w3x", FileCreate(""));
  String lang;
  switch (Form1->ComboBox1->ItemIndex)
  {
    case 0:  lang = "rus"; break;
    case 1:  lang = "eng"; break;
    case 2:  lang = "kor"; break;
    case 3:  lang = "cni"; break;
    case 4:  lang = "tr";  break;
    case 5:  lang = "sp";  break;
    case 6:  lang = "hun"; break;
    case 7:  lang = "br";  break;
    case 8:  lang = "tw";  break;
    case 9:  lang = "de";  break;
    case 10: lang = "cz";  break;
    case 11: lang = "fr";  break;
    case 12: lang = "gr";  break;
    case 13: lang = "ph";  break;
    case 14: lang = "ro";  break;   
    default: lang = "rus";
  }
  Form1->IdHTTP3->Get("http://media.playdota.com/maps/" + lang + "/DotA%20v" + dota_ver + ".w3x", fs);
//  Synchronize(&UpdateCaption);
  delete fs;
}
Миниатюры
Получение текста из файла на сервере  
1
0 / 0 / 0
Регистрация: 06.02.2015
Сообщений: 46
14.02.2015, 00:11  [ТС]
У меня просто нет доступа и да там одна строчка. На другой студии работает DevelStudio. Если что hostinger

Добавлено через 2 минуты
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
14.02.2015, 03:11
Senchick, проверял на своем сайте - все работает. Если у тебя файл "заблокирован" то извини.

Могу предположить, если hostinger, то там 100% апач.
А там смотри и настраивай .htaccess в том же каталоге.

Добавлено через 1 минуту
попробуй сначала с корневой папки, а там уже посмотришь
0
0 / 0 / 0
Регистрация: 06.02.2015
Сообщений: 46
14.02.2015, 07:34  [ТС]
Я ж, говорю что, на студии Develstudio работает
0
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
14.02.2015, 17:13
Цитата Сообщение от Senchick Посмотреть сообщение
Я ж, говорю что, на студии Develstudio работает
У нас тут вообще С++ Builder
0
0 / 0 / 0
Регистрация: 06.02.2015
Сообщений: 46
14.02.2015, 17:34  [ТС]
Ну а тут 403 ошибка
0
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
14.02.2015, 18:28
А у меня 404 ошибка.
0
0 / 0 / 0
Регистрация: 06.02.2015
Сообщений: 46
14.02.2015, 21:33  [ТС]
Ааааа...http://betarelease.esy.es/version/STVersion.txt вот ссылка

Добавлено через 1 час 32 минуты
ну как хотяб просто страницу получить?
0
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
14.02.2015, 22:36
Лучший ответ Сообщение было отмечено Senchick как решение

Решение

Вот мой код (только с ansi на unicode переделать) все работает!
Сколько раз натыкался, что нужно менять UserAgent.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    String result = "none";
    IdHTTP1->Request->UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36";
    IdHTTP1->ConnectTimeout = 5000;
    try
    {
        result = IdHTTP1->Get("http://betarelease.esy.es/version/STVersion.txt");
    }
    catch(...)
    {
        result = "error";
    }
    ShowMessage(result);
}
//---------------------------------------------------------------------------
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.02.2015, 22:36
Помогаю со студенческими работами здесь

Получение текста с файла
Как получить данные со страницы в массив? Пробовал разными методами, все выдавали ошибку, что невозможно начать работу с URl. ...

Получение текста из файла *.txt
var Form1: TForm1; f: textfile; t:string; Загружаю из файла так: AssignFile(f, 'intput.txt'); Reset(f); ...

Запись речи, отправка файла на Google, получение текста речи
Нужна помощь! Нужно написать простую программу. Программа должна при клике на кнопку слушать микрофон. На другую кнопку останавливать...

Получение изображение на сервере
Добрый день! Как получить изображение, которое приходит на сервер POST-запросом? И как проверить его размер?

Получение списка файлов на сервере
1. Пишу простенький ftp-клиент в C++Builder c использованием компонента ClientSocket. 2. Тестирую в Filezilla Server. 3. Подключаюсь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru