Как вывести часть текста из файла?

220
26 ноября 2016, 19:12

Есть текставик содержащий луа скрипты и ненужный мусор. Нужно выводить куски текста скажем от "local" до "}" по нажатию кнопки.

>ONNECT = 20
REPORT = 23
CONTINUE = 31
APPLYCHARGING = 35
REP_APP_CON = 233531

BYPASS_all_SERVICES = "OFF" -- OFF/ON
local SIP_TERM = {
    SERVICE_BYPASS = true,
    APP_SERVER_TYPE = "HTTP",
    APP_SERVER_IP = "999.999.999.9",
    IDP_RES = CONNECT,
    ParamRequet = { "CALLING_NUM", "CALLED_NUM"}
}
local ROAM_CHECK = {
    SERVICE_BYPASS = true,
    APP_SERVER_TYPE = "ORACLE",
    APP_SERVER_IP = "RADIUS", --настройки конекта в /usr/tfdjy/tnsnames.ora  
    IDP_RES = REP_APP_CON,
    ParamRequet = { "CALLING_NUM", "CALLED_NUM"}
}
if BYPASS_all_SERVICES == "ON" then
   print("\nContinue")
   return 1, 0, CONTINUE -- Отправляем Continue
elseif SIP_TERM.SERVICE_BYPASS == true then
   print("\nSIPOnly")
        return 2, SIP_TERM.APP_SERVER_IP, SIP_TERM.IDP_RES -- SIPOnly
elseif ROAM_CHECK.SERVICE_BYPASS == true then
   print("\nROAM_CHECK")
        return 3, ROAM_CHECK.APP_SERVER_IP, ROAM_CHECK.IDP_RES -- ROAM_CHECK
else
   print("") -- если BYPASS - ни одно из перечисленных
end<"Это как однотипный пример.
Answer 1

ну например так

    String text = ">ONNECT = 20\n" +
            "REPORT = 23\n" +
            "CONTINUE = 31\n" +
            "APPLYCHARGING = 35\n" +
            "REP_APP_CON = 233531\n" +
            "\n" +
            "\n" +
            "BYPASS_all_SERVICES = \"OFF\" -- OFF/ON\n" +
            "\n" +
            "local SIP_TERM = {\n" +
            "    SERVICE_BYPASS = true,\n" +
            "    APP_SERVER_TYPE = \"HTTP\",\n" +
            "    APP_SERVER_IP = \"999.999.999.9\",\n" +
            "    IDP_RES = CONNECT,\n" +
            "    ParamRequet = { \"CALLING_NUM\", \"CALLED_NUM\"}\n" +
            "}\n" +
            "\n" +
            "local ROAM_CHECK = {\n" +
            "    SERVICE_BYPASS = true,\n" +
            "    APP_SERVER_TYPE = \"ORACLE\",\n" +
            "    APP_SERVER_IP = \"RADIUS\", --настройки конекта в /usr/tfdjy/tnsnames.ora  \n" +
            "    IDP_RES = REP_APP_CON,\n" +
            "    ParamRequet = { \"CALLING_NUM\", \"CALLED_NUM\"}\n" +
            "}\n" +
            "\n" +
            "if BYPASS_all_SERVICES == \"ON\" then\n" +
            "   print(\"\\nContinue\")\n" +
            "   return 1, 0, CONTINUE -- Отправляем Continue\n" +
            "\n" +
            "elseif SIP_TERM.SERVICE_BYPASS == true then\n" +
            "   print(\"\\nSIPOnly\")\n" +
            "        return 2, SIP_TERM.APP_SERVER_IP, SIP_TERM.IDP_RES -- SIPOnly\n" +
            "\n" +
            "elseif ROAM_CHECK.SERVICE_BYPASS == true then\n" +
            "   print(\"\\nROAM_CHECK\")\n" +
            "        return 3, ROAM_CHECK.APP_SERVER_IP, ROAM_CHECK.IDP_RES -- ROAM_CHECK\n" +
            "\n" +
            "else\n" +
            "   print(\"\") -- если BYPASS - ни одно из перечисленных\n" +
            "end<\"Это как однотипный пример.";

    String[] locals = text.split("local");
    for (int i = 1; i < locals.length - 1; i++) {
        System.out.println("local" + locals[i]);
    }
    System.out.println(locals[locals.length - 1].split("}")[0] + "}");
}

вывод

local SIP_TERM = {
    SERVICE_BYPASS = true,
    APP_SERVER_TYPE = "HTTP",
    APP_SERVER_IP = "999.999.999.9",
    IDP_RES = CONNECT,
    ParamRequet = { "CALLING_NUM", "CALLED_NUM"}
}

 ROAM_CHECK = {
    SERVICE_BYPASS = true,
    APP_SERVER_TYPE = "ORACLE",
    APP_SERVER_IP = "RADIUS", --настройки конекта в /usr/tfdjy/tnsnames.ora  
    IDP_RES = REP_APP_CON,
    ParamRequet = { "CALLING_NUM", "CALLED_NUM"}

https://ideone.com/2929LA

Answer 2
  1. Для разделения вашего текстового файла используйте метод split из класса String, с нужными вам аргументами ("local" и "}"), затем убирайте ненужные на данный момент части;
    1. Если по нажатию на кнопку, наверное, вы хотите GUI-приложение. Здесь вам поможет JavaFX / awt.
READ ALSO
Компиляция приложения android на сервере

Компиляция приложения android на сервере

Как перенести процесс сборки проекта на отдельную машину? поверхностный гугл не дал внятных результатовКто связывался с этим? пишу в AS

260
TextChangedListener и маска

TextChangedListener и маска

Написал форму для проверки региона по номеру телефона Поставил TextWatcher на форму ввода, он отслеживает значение поля ввода и подставляет маску,...

353
Как правильно вытянуть Лайки из youtube?

Как правильно вытянуть Лайки из youtube?

Хочу добавить в приложение возможность вытягивать лайки и дизлайки из указанных видеоВернее я это реализовал парсингом страницы, но данное...

272