将函数转换为C#

将函数转换为C#,c#,google-apps-script,C#,Google Apps Script,我正在努力寻找一种将这个函数转换为C的方法。你能帮我一下吗? 我已经找到了如何从服务器获取数据并使用这些信息获取响应,但无法找到一种方法来获取indexof和substring,而这段代码就是这样做的 function getIPCA(sm=6, sy=2020, em=12, ey=2020) { if (typeof sm === 'number') { sm = sm.toString() } if (typeof em === 'number') { em =

我正在努力寻找一种将这个函数转换为C的方法。你能帮我一下吗? 我已经找到了如何从服务器获取数据并使用这些信息获取响应,但无法找到一种方法来获取indexof和substring,而这段代码就是这样做的

function getIPCA(sm=6, sy=2020, em=12, ey=2020) {
  if (typeof sm === 'number') {
    sm = sm.toString()
  }
  if (typeof em === 'number') {
    em = em.toString()
  }
  sm = sm.length == 1 ? "0"+sm : sm
  em = em.length == 1 ? "0"+em : em
  var options = {
    'method' : 'post',
    //'payload' : 'aba=1&selIndice=00433IPC-A&dataInicial='+sm+'%2F'+sy+'&dataFinal='+em+'%2F'+ey+'&valorCorrecao=1%2C00&idIndice=&nomeIndicePeriodo='
    'payload' : 'aba=1&selIndice=00433IPCA&dataInicial='+sm+'%2F'+sy+'&dataFinal='+em+'%2F'+ey+'&valorCorrecao=1%2C00&idIndice=&nomeIndicePeriodo='
   };

  var response = UrlFetchApp.fetch('https://www3.bcb.gov.br/CALCIDADAO/publico/corrigirPorIndice.do?method=corrigirPorIndice', options)

  var text = response.getContentText();

  var doc = text.substring(text.indexOf('fundoPadraoAClaro3')).substring(978, 987)
  return parseFloat(doc.replace(",","."))

}

我帮你翻译了代码,我想这就是你想要的

public static float GetIPCA(int sm = 6, int sy = 2020, int em = 12, int ey = 2020)
        {
            string sm_str = sm.ToString();
            string em_str = em.ToString();

            sm_str = sm_str.Length == 1 ? "0" + sm_str : sm_str;
            em_str = em_str.Length == 1 ? "0" + em_str : em_str;

            WebRequest request = WebRequest.Create("https://www3.bcb.gov.br/CALCIDADAO/publico/corrigirPorIndice.do?method=corrigirPorIndice");
            request.Method = "POST";

            string postData = "aba=1&selIndice=00433IPCA&dataInicial="+sm_str+"%2F"+sy+"&dataFinal="+em_str+"%2F"+ey+"&valorCorrecao=1%2C00&idIndice=&nomeIndicePeriodo=";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteArray.Length;

            using (Stream ds = request.GetRequestStream())
            {
                ds.Write(byteArray, 0, byteArray.Length);
            }

            WebResponse response = request.GetResponse();

            string responseFromServer = "";

            using (Stream ds = response.GetResponseStream())
            {
                using (StreamReader reader = new StreamReader(ds))
                {
                    responseFromServer = reader.ReadToEnd();
                }
            }

            response.Close();

            string doc = responseFromServer.Substring(responseFromServer.IndexOf("fundoPadraoAClaro3")).Substring(978, (987-978+1));
            float num = 0;
            float.TryParse(doc.Replace(',','.'), out num);
            return num;
        }

如果你只有转换这条线的困难

var doc = text.substring(text.indexOf('fundoPadraoAClaro3')).substring(978, 987)
下面的代码可能对您有所帮助

var doc = text.Substring(text.IndexOf("fundoPadraoAClaro3")).Substring(978, 987);

那么你是说你没有找到和?我建议不要发布所有不相关的JS代码,请发布你的C#代码来说明你所面临的实际问题。我感谢你的帮助。