|
The asterisk is being "greedy"; try *?
From the help:
"
*? Specifies the first match that consumes as few repeats as possible (equivalent to lazy *).
"
|
|
|
|
|
WOW ! it worked.. Thanks. I would have voted you 10 if I can.
|
|
|
|
|
Hello.
I have a text file that looks like this:
0 1 "Bull Fighter" 6 100 0 16 20 6 0 28 6 3 0 1 5 400 1600 10 2 130 10 6 0 0 0 0 0<br />
1 1 "Hound" 9 140 0 22 27 9 0 39 9 3 0 1 5 400 1600 10 2 130 10 6 0 0 0 0 0<br />
2 1 "Budge Dragon" 4 60 0 10 13 3 0 18 3 3 0 1 4 400 2000 10 2 120 10 6 0 0 0 0 0
It is called monster.txt
The first value is a id which I also use in my script.
Lets say I have the id 3, this would be "Spider" since the first number of "Spider" is 3
What is the best way to read the monster.txt file for the id and retrive the name? (Name = "Spider", id = 3) (As my example above)
|
|
|
|
|
Split() will work but you have space in name too, i will suggest you to convert your line like this, if possible :
0~1~"Bull Fighter"~6~100~0~16~20~6~0~28~6~3~0~1~5~400~1600~10~2~130~10~6~0~0~0~0~0
then you can use Split('~')
hope this will help
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87??6?N8?BcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKSQXUFYK[M`UKs*$GwU#(QDXBER@CBN%
Rs0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-i?TV.C\y<p?jxsg-b$f4ia>
--------------------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Its not a problem getting the monster name. When I just have the line, it is no problem.
The problem is reading the file and accessing the line through a id.
Because it would be pretty silly to read the whole file just for 1 line.
|
|
|
|
|
Casper Hansen,
You cannot read only 1 line of a text file. You need to get the whole file, and then search for your ID.
Regards,
Gareth.
|
|
|
|
|
As presented you have to read the entire file.
Or use an index in a separate file.
Or alter the format somehow. For instance each line could begin with the length of the line.
Personally, I suggest using XML, but that's just me.
|
|
|
|
|
read all lines from text then do your operation, to read all line here is the shortest ways :
string[] lines = File.ReadAllLines( <FILEPATH> );
hope this will help
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87??6?N8?BcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKSQXUFYK[M`UKs*$GwU#(QDXBER@CBN%
Rs0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-i?TV.C\y<p?jxsg-b$f4ia>
--------------------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
That's why Split should have the ability to honor quote characters... as mine does.
|
|
|
|
|
Depending on how often you need to access this information you'd probably be better off storing this information in a DataTable (which you could create at runtime). You can then use the Rows property of the DataTable object to retrieve your row at the given index.
I also agree with the previous poster that you should use a different char for separating values.
But fortunately we have the nanny-state politicians who can step in to protect us poor stupid consumers, most of whom would not know a JVM from a frozen chicken. Bruce Pierson Because programming is an art, not a science. Marc Clifton
|
|
|
|
|
I just used
private void findMonster(int monsterId)<br />
{<br />
StreamReader sr = new StreamReader(@monsterLocation);<br />
int searchId = monsterId;<br />
int actualId = 0;<br />
string name = "(Not found)";<br />
string[] details = null;<br />
string line = null;<br />
while ((line = sr.ReadLine()) != null)<br />
{<br />
line = line.Trim();<br />
if (line == "") continue;<br />
details = line.Split('\t');<br />
actualId = int.Parse(details[0]);<br />
if (actualId == searchId)<br />
{<br />
name = details[2].Replace("\"", "");<br />
break;<br />
}<br />
}<br />
sr.Close();<br />
txtMonster.Text = name;<br />
}
Dont know if its the best way, but it works..
As you guys said I should use some other database form then txt, but the game im devolping this software to is using txt files so cant rellay change it
|
|
|
|
|
XML is text. CSV is text.
|
|
|
|
|
I said txt not text
|
|
|
|
|
Yeah, so?
"txt" is not a reserved extension for some special format. Likewise the extension of your file could just as easily be "dat" or "casper".
I merely meant to suggest that you not use the format shown if at all possible.
|
|
|
|
|
Hello everyone,
Here is the description about when to use Pulse and when to use PulseAll to achieve best performance.
My question is, I do not quite understand this situation, "Sometimes, however, different threads are waiting on different conditions, but all waiting on the same monitor. In that case, you need to use PulseAll so that you make sure that the thread which is waiting for whatever condition has just occurred is able to notice it and make progress."? Could anyone show a scenario about what means "different threads are waiting on different conditions, but all waiting on the same monitor" please?
(the link and related whole paragraph is quoted below)
http://www.yoda.arachsys.com/csharp/threads/deadlocks.shtml
--------------------
The reason for having both Pulse and PulseAll is for different situations, where you're waiting on different conditions. If either there'll only be one thread waiting, or (as is the case above) any thread can consume any produced object, you can just use Pulse. If there are several threads waiting on the object, that ends up being more efficient than PulseAll - there's no point in waking up a bunch of threads if you know that only one of them is going to be able to make progress, and that it doesn't matter which you wake up. Sometimes, however, different threads are waiting on different conditions, but all waiting on the same monitor. In that case, you need to use PulseAll so that you make sure that the thread which is waiting for whatever condition has just occurred is able to notice it and make progress.
--------------------
thanks in advance,
George
|
|
|
|
|
Hi All,
I'm just looking into the options for including either SQLExpress or SQL CE for my local (one user) data store. Having read up on it some it seems that there are more security considerations if you include SQLExpress (and a larger download). Has anyone here deployed an app that used SQLExpress to very non-thechie users?
How much more complicated is it to embed SQLEXpress over SQLCE?
Cheers,
Jammer
Going where everyone here has gone before!
My Blog
|
|
|
|
|
make a installer that will install SQLExpress before installing your app
i think you cannot embed sql in your app
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87??6?N8?BcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKSQXUFYK[M`UKs*$GwU#(QDXBER@CBN%
Rs0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-i?TV.C\y<p?jxsg-b$f4ia>
--------------------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Hi,
I've basically opted for SQLCE. After reading up on the two on the MS site (there is loads of good comparison stuff there) it seems that SQLCE should to the trick, and its going to make my download a LOT smaller ... like 1.8mb for SQLCE vs 60mb for SQLExpress.
Your right, SQLExpress is not embeddable like SQLCE and makes the install process potentially a LOT more complex.
Cheers,
Jammer
Going where everyone here has gone before!
My Blog
|
|
|
|
|
If your looking for a small, lightweight db to bundle with your apps how about SQLite?
ADO.NET provider for SQLite available here
But fortunately we have the nanny-state politicians who can step in to protect us poor stupid consumers, most of whom would not know a JVM from a frozen chicken. Bruce Pierson Because programming is an art, not a science. Marc Clifton
|
|
|
|
|
Hi,
I wanted to know if there's a way to stream live audio ( like live radio ) from the web and than saving it in a way so I can hear it. After that I want to be able to convert it to mp3 format.
I tried to use WebClient object but got an array of bytes. where do I go from here? or is there a better wat to do it?
|
|
|
|
|
You could use LAME to encode the stream into MP3 audio. Check out http://lame.sourceforge.net/download.php[^] for the source code. LAME compiles to an executable, so you could then save the stream to disc and pass the saved file to the LAME codec. Command line options are available at http://lame.cvs.sourceforge.net/*checkout*/lame/lame/USAGE[^]
This of course assumes that the audio data you are receiving is in standard RAW WAV format. If the audio is being played in a player like QuickTime or Windows Media player, you will need to convert from the wma, or aac formats to WAV first.
Hope this steers you in the right direction.
modified 30-Aug-22 21:01pm.
|
|
|
|
|
How can I tell what is the format of the data? I just got an array of bytes.
|
|
|
|
|
Well, unless you know where the data is coming from and in which format, there's no real way to tell unless you plan on writing some heavy code that will fish out which format the data is in. A good clue would be which player is used to play the content. My guess would be that quicktime player uses AAC format, Windows Media Player uses WMA. Do you have an example of a URL the stream is coming from?
modified 30-Aug-22 21:01pm.
|
|
|
|
|
|
It seems that the format you are receiving is ASF... You will need to get hold of some sort of ASF to MP3 converter to convert the stream you are receiving from the site. This would be a good time to just mention the word 'copyright'
modified 30-Aug-22 21:01pm.
|
|
|
|