これは、html ファイルから URL を抽出するために使用するコードです。
private void test(string firstTag, string lastTag, string f)
{
List<string> imagesUrls = new List<string>();
int startIndex = 0;
int endIndex = 0;
int position = 0;
string startTag = firstTag;//"http://www.niederschlagsradar.de/images.aspx";
string endTag = lastTag;//"cultuur=en-GB&continent=europa";
startIndex = f.IndexOf(startTag);
while (startIndex > 0)
{
endIndex = f.IndexOf(endTag,startIndex);
if (endIndex == -1)
{
break;
}
string t = f.Substring(startIndex, endIndex - startIndex + endTag.Length);
imagesUrls.Add(t);
position = endIndex + endTag.Length;
startIndex = f.IndexOf(startTag,position);
}
string item = imagesUrls[imagesUrls.Count - 1];
imagesUrls.Remove(item);
for (int i = 0; i < imagesUrls.Count; i++)
{
if (f == satelliteMapToRead)
{
imagesUrls[i] = stringForSatelliteMapUrls + imagesUrls[i];
}
using (WebClient client = new WebClient())
{
client.DownloadFile(imagesUrls[i], UrlsPath + "Image" + counter.ToString("D6"));
}
counter++;
}
List<string> files = Directory.GetFiles(UrlsPath).ToList();
uf.MakeGIF(files, localFilename + "weather", 80, true);
}
変数 f は、すべてのテキストを読み取る html ファイルです。この html ファイルの List imagesUrls には 9 つの項目が含まれています。
リストの最初の項目は次のとおりです。
http://www.sat24.com/image2.ashx?region=eu&time=201309172215&ir=true
リストの 2 番目の項目は次のとおりです。
http://www.sat24.com/image2.ashx?region=eu&time=201309172200&ir=true
最初の URL の日付と時刻は次のとおりです: 2013 09 17 22 15 日付は 2013 09 17 で、時刻は 22:15 です。
2 番目の項目の日付と時刻は次のとおりです。そして、これはhtmlファイルの順序です。
リストが9つのアイテムでいっぱいになった後、リストのimagesUrlsでそれを変更して、最初のものから最後のものになるようにするにはどうすればよいですか?
編集**
これは私がしました:
if (f == satelliteMapToRead)
{
sortedList =
imagesUrls
.OrderBy(s =>
DateTime.ParseExact(
System.Web.HttpUtility.ParseQueryString(s).Get("time"),
"yyyyMMddHHmm",
System.Globalization.CultureInfo.InvariantCulture));
for (int i = 0; i < sortedList.Count(); i++)
{
if (f == satelliteMapToRead)
{
imagesUrls[i] = stringForSatelliteMapUrls + imagesUrls[i];
}
using (WebClient client = new WebClient())
{
client.DownloadFile(imagesUrls[i], UrlsPath + "Image" + counter.ToString("D6"));
}
counter++;
}
}
しかし、リストを並べ替えた後、imagesUrlsリストの代わりに並べ替えられたリストを使用する必要がありますが、imagesUrlsがListであるため、それらは同じではありません
では、コードのこの部分で sortedList を imagesUrls List に置き換えるにはどうすればよいでしょうか。