|
AFAIK you just need to set up some loops wisely. Here is a bit of quick and dirty approach I could think of:
List <string> s = new List <string>();
s.Add("jpg");
s.Add("tif");
s.Add("jpg");
s.Add("tif");
s.Add("jpg");
s.Add("jpg");
s.Add("tif");
s.Add("tif");
s.Add("jpg");
s.Add("tif");
bool breakFor = false;
int togetherCount = 1;
for (int i = 1;i < s.Count -1;i++) {
if (s[i] == s[i - 1]) {
togetherCount++;
continue;
}
else {
int count = 0;
while (count < togetherCount) {
if (!(s[i + 1] == s[i + count])) {
if (togetherCount > 1) {
MessageBox.Show("error");
breakFor = true;
break;
}
}
count++;
}
if (breakFor) {
break;
}
else {
i = i + togetherCount;
togetherCount = 1;
}
}
}</string></string>
It might not be correct but good to start off I guess.
|
|
|
|
|
Hmm... it sure looks like it's in the right way. Thanks for taking the time. I'll try to implent something similar and report what happend.
Thank you
Regards,
Matjaž
|
|
|
|
|
Somehow it seems i didnt implent this correctly... or it doesnt work right (like you said, it could and could not work)...
aah :/
if (fbd1.ShowDialog() != DialogResult.Cancel)
{
if (checkBox1.Checked == true)
DIRI.Items.AddRange(Directory.GetDirectories(fbd1.SelectedPath, "*.*", SearchOption.AllDirectories));
else
DIRI.Items.AddRange(Directory.GetDirectories(fbd1.SelectedPath, "*.*", SearchOption.TopDirectoryOnly));
for (int i = 0; i < DIRI.Items.Count; i++)
{
ArrayList DATOTEKE = new ArrayList();
DATOTEKE.AddRange(Directory.GetFiles(DIRI.Items[i].ToString().ToLower()));
ArrayList KONCNICE = new ArrayList();
for (int bo = 0; bo < DATOTEKE.Count; bo++)
{
KONCNICE.Add(Path.GetExtension(DATOTEKE[i].ToString()));
}
bool breakFor = false;
int togetherCount = 1;
for (int j = 1; j < KONCNICE.Count - 1; i++)
{
if (KONCNICE[j] == KONCNICE[j - 1])
{
togetherCount++;
continue;
}
else
{
int count = 0;
while (count < togetherCount)
{
if (!(KONCNICE[j + 1] == KONCNICE[j + count]))
{
if (togetherCount > 1)
{
listBox1.Items.Add(DIRI.Items[i].ToString());
breakFor = true;
break;
}
}
count++;
}
if (breakFor)
{
break;
}
else
{
j = j + togetherCount;
togetherCount = 1;
}
}
}
}
}
Regards,
Matjaž
|
|
|
|
|
I would say, debug the code and find where you are wrong. Get hold of the logic and you will be done.
Matjaž Grahek wrote: if (!(KONCNICE[j + 1] == KONCNICE[j + count]))
One thing I can figure out is you need to remoe this + 1. I have not debugged the code just read it so I may go wrong.
|
|
|
|
|
In today's pseudo-language that would be:
filelist=getAllFilenames()
filelist.Sort
diff=0
foreach(file in filelist) {
if (jpg) diff++
else diff--
if (diff<-1 or diff>1) error
}
Two remarks:
1. to get a natural sort order for the file names, same as Windows Explorer does, you would need to use Explorer's code, i.e. use P/Invoke and the prototype:
[DllImport("shlwapi.dll", CharSet=CharSet.Unicode, ExactSpelling=true)]
private static extern int StrCmpLogicalW(string s1, string s2);
Of course if the name part is just a number, you could use int.Parse and sort based on the outcome.
2. I cannot imagine where and how your requirement could ever have a useful application.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
If its about Windows Explorer than I think its not possible. The sorting is simple as its string...
Why error occur, if you check the extension...or I might not get your question
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-iTV.C\y<pjxsg-b$f4ia>
--------------------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
It doesnt concern explorer.
Basicly, the intention of this application would be to check if JPG files have their duplicate TIF files.
If it would be just 1-1, then i could do it... but i cant figure this one out.
And what i ment by an error was to put as an output - in which folder the files dont match.
Regards,
Matjaž
|
|
|
|
|
its simple then...
try this
bool Test(string dirPath)
{
string[] filePaths = Directory.GetFiles(dirPath, "*.jpg");
for (int a = 0; a < filePaths.Length; a++)
{
if (!File.Exists(Path.Combine(dirPath, Path.GetFileNameWithoutExtension(filePaths[a]) + ".tif")))
return false;
}
return true;
}
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-iTV.C\y<pjxsg-b$f4ia>
--------------------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Umm not duplicates :/ sorry... just... the follow up files.
1.jpg has his own tif, but with a different name. example... 3.tif, because there is another 2.jpg before.
Regards,
Matjaž
|
|
|
|
|
In that case, just get the count of files with JPG and count of files with TIF and they must be equal.
Dump the code I had posted.
Edit: There is a lot of misunderstanding going on in this post.
|
|
|
|
|
I already thought of that - but it is definitly a no-go. Why? Well, maybe there are some files which dont have their tifs, but some tiffs dont have their jpgs - and the count may match.
Regards,
Matjaž
|
|
|
|
|
aha I got ya now. The thing you want called Stack. Last In Last Out.
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-iTV.C\y<pjxsg-b$f4ia>
--------------------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Matjaž Grahek wrote: 1.jpg has his own tif, but with a different name
that is plain stupid. Extensions exist so files that belong together can share the name part of a filename. Use it to your advantage rather than strugging with some code to fix the mistake.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Is there a super easy way to convert a string generated from something like Application.StartupPath to dos compatibility (i.e. directories with spaces have quotes around them and Directories that are too long have a ~ inserted?
Thanks,
Colin
|
|
|
|
|
yeah, you format the string yourself, how much easier can you get? (without doing any work that is)
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
I figured as much, just wanted to make sure I wasn't missing somethign horribly obvious like toString.DosCompatability or something dumb like that
|
|
|
|
|
Try this:
Path.GetTempFileName();
Path.GetTempPath();
I think you'll manage implanting this one
Regards,
Matjaž
|
|
|
|
|
Try using the GetShortPathName API. You can get the function signature at pinvoke.net, and an example here
|
|
|
|
|
Dear developers
I need to provide an environment that users can build a formula usuin field names of a database
table and some string functions like "substr","left", and "right".The environment saves formula
in a string variable,and when user clicks a button,my code must run that formula over values of
those fields for selected record of that table.
Now,I have that environment and it returns formula as a sring to me,but I don't still have any
idea how to run this string.Do I have to write some code to compile it?I found that .Net has
some namespaces for building dynamic methods,I mean Document object model,but if I want to use
classes of this namesapce I have to convert that formula to IL,which is more difficult for me.
Is there any other idea how I can run a user defined expression inside my code and show up its
result to user?That expression can be like this,if we suppose all table field names start with
"fld":
"fldDKCode+fldDKSerial+Substr(fldDKDate,3,2)+fldDKId+Left(fldDKUserName)"
and I have a database table named TBDKUsers,includes all fields mentioned above.When user clicks
on Run button,my program must show the result of this expression for selected record of TBDKUsers.
Thank you very much\
Reza
|
|
|
|
|
I can't really understand what you are doing, but I think this might be it. You are having users write an expression string that will pull out of a (SQL?) database? If so, just take those expressions and turn them into the equivalent SQL statement. If you are using a different database system, the steps will still be almost the same.
The best way to accelerate a Macintosh is at 9.8m/sec² - Marcus Dolengo
|
|
|
|
|
If your looking for a way to convert a string to a use-able command you could break the string up into sub strings and then pass those through methods you create.
So if you had the string of Blue/No/Yes/Please
And methods
String Conversion;
Color of Eyes;
Children;
Married;
Call Back;
This would allow you to execute specific commands to your database based off of the strings contents.
|
|
|
|
|
how can i make transparent only my form back ground except rest all(buttons,textBoxes and ListView Boxes) only back ground....
A S E L A
|
|
|
|
|
By setting form's BackGround color and TransparencyKey as same color.
|
|
|
|
|
i mean same as Opacity....but i want to do opacity only for back ground....
A S E L A
|
|
|
|
|
Did you tried what I had replied? Whats wrong with that?
|
|
|
|