将函数转换为C#
我正在努力寻找一种将这个函数转换为C的方法。你能帮我一下吗? 我已经找到了如何从服务器获取数据并使用这些信息获取响应,但无法找到一种方法来获取indexof和substring,而这段代码就是这样做的将函数转换为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 =
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#代码来说明你所面临的实际问题。我感谢你的帮助。