|
You last visited: Today at 21:16
Advertisement
C# File Search
Discussion on C# File Search within the .NET Languages forum part of the Coders Den category.
09/14/2013, 22:20
|
#1
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
C# File Search
Ich bin auf der Suche nach einer Methode wie ich Dateien aus einem Ordner anzeigen lassen kann, dabei folgende "SearchPattern" nutze.
Code:
world\wdMadrigal\WdMadrigal(2,00,04)-(2,00,04).lnd
2 steht für wie viele stellen es sein soll, die 00 und 04 für die Dateinummern.
Als Ausgabe möchte ich folgendes haben:
Quote:
world\wdMadrigal\WdMadrigal00-00.lnd
world\wdMadrigal\WdMadrigal00-01.lnd
world\wdMadrigal\WdMadrigal00-02.lnd
world\wdMadrigal\WdMadrigal00-03.lnd
world\wdMadrigal\WdMadrigal00-04.lnd
world\wdMadrigal\WdMadrigal01-00.lnd
world\wdMadrigal\WdMadrigal01-01.lnd
world\wdMadrigal\WdMadrigal01-02.lnd
world\wdMadrigal\WdMadrigal01-03.lnd
world\wdMadrigal\WdMadrigal01-04.lnd
world\wdMadrigal\WdMadrigal02-00.lnd
world\wdMadrigal\WdMadrigal02-01.lnd
world\wdMadrigal\WdMadrigal02-02.lnd
world\wdMadrigal\WdMadrigal02-03.lnd
world\wdMadrigal\WdMadrigal02-04.lnd
world\wdMadrigal\WdMadrigal03-00.lnd
world\wdMadrigal\WdMadrigal03-01.lnd
world\wdMadrigal\WdMadrigal03-02.lnd
world\wdMadrigal\WdMadrigal03-03.lnd
world\wdMadrigal\WdMadrigal03-04.lnd
world\wdMadrigal\WdMadrigal04-00.lnd
world\wdMadrigal\WdMadrigal04-01.lnd
world\wdMadrigal\WdMadrigal04-02.lnd
world\wdMadrigal\WdMadrigal04-03.lnd
world\wdMadrigal\WdMadrigal04-04.lnd
|
Bisher habe ich keine Lösung dafür finden können. Hoffe jemand weiß weiter.
|
|
|
09/14/2013, 22:42
|
#2
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|

+
for schleife
|
|
|
09/15/2013, 00:14
|
#3
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Das passt leider nicht zu dem was ich so suche.
Der Index muss mit einer null beginnen, allerdings habe ich eine zwei am Anfang, diese stellt das da, was die "D2" in dem fall machen würde. Nur die Auflistung für 00,04 fehlt noch.
|
|
|
09/15/2013, 00:32
|
#4
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
€dit: so grad auch im vs getestet, klappt:
Code:
Const outer As Integer = 4
Const inner As Integer = 4
Const fmt As String = "00"
For i = 0 To outer
For a = 0 To inner
TextBox1.Text &= i.ToString(fmt) & "-" & a.ToString(fmt) & vbCrLf
Next a
TextBox1.Text &= vbCrLf
Next i
output:
Code:
00-00
00-01
00-02
00-03
00-04
01-00
01-01
01-02
01-03
01-04
02-00
02-01
02-02
02-03
02-04
03-00
03-01
03-02
03-03
03-04
04-00
04-01
04-02
04-03
04-04
|
|
|
09/15/2013, 00:43
|
#5
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Ne, das passt nicht. Kommt 16x "04-04" bei raus. Ansatz ist okay aber noch nicht das was ich will. Die Aufzählung kann ich ja schon korrekt darstellen. Ich will das ganze aber direkt so haben, dass ich aus dem Wert eine Art Pattern habe um einen Ordner nach Dateien die diesem Muster passen anzeigen zu lassen.
|
|
|
09/15/2013, 00:45
|
#6
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
war nen schreibfehler drin, schau edit
sonst musste es mit regex machen wenn du nur danach suchen willst
|
|
|
09/15/2013, 08:02
|
#7
|
elite*gold: 1
Join Date: Jun 2012
Posts: 5,819
Received Thanks: 3,200
|
Loope dich doch durch alle Dateien und schau ob dein regex pattern passt...
|
|
|
09/15/2013, 10:16
|
#8
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Sind knapp 1200 Dateien. Ich will nicht jedes mal alle durchgehen.
|
|
|
09/15/2013, 11:15
|
#9
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
1200 Dateien sind nichts.
|
|
|
09/15/2013, 11:27
|
#10
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Es geht nicht um das durchsuchen der einzelnen dateien auf die Pattern sondern um so wenig Perfomance verlust wie möglich.
|
|
|
09/15/2013, 11:55
|
#11
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
Du wirst dir alle Dateien ansehn müssen, wie willst du sonst wissen das sie nicht ins Pattern passen oder Bereits erfasst wurden ?
|
|
|
09/15/2013, 12:46
|
#12
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
hinzu kommt das 1200 pfade vergleichen für nen pc kein problem ist, du musst ja nicht alle inhalte auslesen oder sonst was
|
|
|
09/15/2013, 12:58
|
#13
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Um das auszählen kam ich leider nicht rum. Da muss ich dann etwas Performance einstecken lassen, auch wenn es nur ein wenig ist.
Folgendes habe ich "fabriziert"
Code:
String count = Scanner.GetToken();
count = count.Replace("(", "{").Replace(")", "}");
Regex regex = new Regex("{(.*)}");
var v = regex.Match(count);
string[] temp = v.Groups[0].ToString().Split('-');
string[] result1 = temp[1].Replace("{", "").Replace("}", "").Split(',');
string[] result2 = temp[0].Replace("{", "").Replace("}", "").Split(',');
string[] s1 = Path.GetDirectoryName(count).Split('\\');
s1[0] = s1[s1.Length - 1];
String[] nFiles = Directory.GetFiles(Path.GetDirectoryName(count), "*.*", SearchOption.TopDirectoryOnly);
szFiles = new ArrayList();
for (int j = Convert.ToInt32(result1[1]); j <= Convert.ToInt32(result1[2]); ++j)
{
for (int e = Convert.ToInt32(result2[1]); e <= Convert.ToInt32(result2[2]); ++e)
{
String sFile = String.Format(Path.GetDirectoryName(count) + "\\" + s1[0] + "{0:D" + result1[0] + "}-{1:D" + result2[0] + "}" + Path.GetExtension(count), j, e);
for (int i = 0; i < nFiles.Length; ++i)
{
if (sFile.ToLower() == nFiles[i].ToLower())
{
szFiles.Add(sFile.ToLower());
}
}
}
}
Es funktioniert auch perfekt, falls ihr da noch verbesserungen sehen könnt, gebt mir bitte bescheid.
"Scanner.GetToken()" liest "world\wdMadrigal\WdMadrigal(2,00,04)-(2,00,04).lnd" aus.
|
|
|
09/15/2013, 13:13
|
#14
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
Verbesserungen in welche Richtung ?
Du könntest nen paar Sachen weglassen, wobei du Perfomancen gegen Sauberkeit und Lesbarkeit tauschst, aber um ehrlich zu sein seh ich kein wirklichen Grund dafür, sobald DAS der Grund für ein Perfomancenflaschenhals wird, solltest du so oder so auf ne native Sprache umsteigen und möglichst viele kritische Stellen direkt mit ASM lösen. (Und beten das der eigenen Code tatsächlich schneller ist als der den die hervoragenden MS Compiler ausspucken  )
|
|
|
09/15/2013, 13:28
|
#15
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Naja, dann lasse ich das ganze mal so.
Danke an die, die versucht haben zu helfen.
|
|
|
 |
|
Similar Threads
|
[SEARCH] Need old game.xml file
04/11/2013 - DarkOrbit - 0 Replies
Hi!!!
I´m searching for 2010 game.xml file, or 2009 will be ok ;)
Or if someone could post the old formations of drones it will be very very helpfull.
Formation like that:
<formation id="42" name="X">
<positionsList data="100,100;-100,100;100,-100;-100,-100;150 ,150;-150,150;150,-150;-150,-150;-200,200;-200,-20 0;200,-200;200,200"/>
|
AO Texture File Search
10/15/2011 - Atlantica Online - 0 Replies
Usually every ingame Char has a texture file for it's own.
What I'm looking for is the texture file for the red simplified avatars that show up if you put your System settings to "Use Simplified Character"...
Thanks in advance
|
I search game file level 150 See more here!
09/19/2011 - Metin2 Private Server - 1 Replies
I search game file level 150, easy exp, easy drop yang.
I need to daroo files, but i need a gamefiles not very easy, easy only!
Thank.
Any?
|
File Search
01/18/2007 - Kal Online - 2 Replies
hi ,
ich brauche ganz dringend die bug.dll vom kalhackit ...
bzw das volle ... da ich formatiert hab :x
danke
|
All times are GMT +1. The time now is 21:17.
|
|