|
One of my proposals was specific in the regard to what you should do if you still had a problem.
You did not follow through with that.
|
|
|
|
|
Hi,
U advice are so interessant. It helps me sssssssssssso to find a solution of my problem.These is the two steps that solves my problem:
1- using of string builder concept:
StringBuilder lineBuilder = new StringBuilder ();
headLine = strEnteteHead + strNumLine;
lineBuilder .Append (headLine);
lineBuilder.Append (endOfLine);
then englobing it in my streamwriter:
monStreamWriter.WriteLine(lineBuilder.ToString());
monStreamWriter.Close();
return monStreamWriter;
2- Doing one Response.write ( not like I do in the begining) when reading my file with streamreader
StreamReader report = (StreamReader)GGetValue ("_Report");
this.Response.Write (report.ReadToEnd().ToString ());
Now, orpning my file with all (word , wordPad, EXCEL,...),lines are sssssso clear
Thank u for u help
|
|
|
|
|
Open the file up in a hex editor and see what's in there. You should be looking for the \r\n sequence - if it's in there the problem is not with your file.
|
|
|
|
|
Hi Everyone,
I have created a placeholder that holds a windows media player object. ds is a DataSet that holds the video's location on the hard drive. here's the code:
PlaceHolder2.Controls.Add(new LiteralControl(
" <OBJECT id=\"VIDEO\" width=\"640\" height=\"480\" " +
"CLASSID=\"CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6\" type=\"application/x-oleobject\"> " +
"<PARAM NAME=\"URL\" VALUE=\"" + ds.Tables[0].Rows[0][0].ToString() + "\"> " +
"<PARAM NAME=\"SendPlayStateChangeEvents\" VALUE=\"True\"> <PARAM NAME=\"AutoStart\" VALUE=\"True\"> " +
" </OBJECT> "
));
Normally this would work fine, except I am trying to access a file that is outside the IIS and on a seperate hard drive, so currently an example of the "url" would be "D:\videos\camping.wmv"
The client won't be able to take this because it'll try to locate the file on the client's machine.
What I'd like to know is if it is possible to reference a video file outside of the website folder, and how to do that.
Regards,
Brad
|
|
|
|
|
Murphy's law says I look for something slightly off the topic and find the solution -_-
The solution (for future reference) is to include a virtual directory through IIS. This allows you to reference the files as if they were in a folder in your website. I am now going to go hit my head against a wall.
Regards,
Brad
|
|
|
|
|
twinscythe12332 wrote: I am now going to go hit my head against a wall.
Have a beer and relax instead.
If you hit your head against any solid matter, soon you won't be able to hit the keybord.
Yeah I know, just saying..
All the best,
Dan
|
|
|
|
|
to have a beer would be to go against the teachings of my religion, but I get what you're saying =P
|
|
|
|
|
Hi every body,
I wanna generate a .txt file.I use the streamwriter to write my data to a file like this:
public static StreamWriter BuildTxtFichierVirement (ISReglementViewCollection reglements, ISISalarieCollection salaries, string myPath)
{
try
{
StreamWriter monStreamWriter = new StreamWriter(myPath, true, System.Text.Encoding.ASCII);
foreach (ISReglementView reglement in reglements)
{
#region Date Virement ------------------------
string strYear = reglement.DateReglement.Year.ToString ();
string strMonth = "";
string strDay = "";
if (reglement.DateReglement.Month > 9)
strMonth = reglement.DateReglement.Month.ToString ();
else
strMonth = "0" + reglement.DateReglement.Month.ToString ();
if (reglement.DateReglement.Day > 9)
strDay = reglement.DateReglement.Day.ToString ();
else
strDay = "0" + reglement.DateReglement.Day.ToString ();
string strDate = strDay + strMonth + (strYear.ToCharArray ()) [strYear.Length - 1];
string date = reglement.DateReglement.Year.ToString ();
#endregion
#region Entetes + EuroFranc ------------------
string strEnteteHead = "0302";
string strEnteteBody = "0602";
string strEnteteSum = "0802";
string strEuro = "E";
string strFranc = "F";
#endregion
#region Données RIB --------------------------
string agence = "mdmff";
string guichet = "hhlkj";
string cle = "kjkj";
string compte = "lkjlkj" ;
string domicilationbancaire = "ljkjol" ;
#endregion
monStreamWriter.WriteLine(strEnteteHead + Inserer_Espaces(8) + agence + Inserer_Espaces(7) + strDate + domicilationbancaire + reglement.ID + Inserer_Espaces(15) + strEuro + Inserer_Espaces(5) + guichet + compte + Inserer_Espaces(47) + agence + Inserer_Espaces(6));
monStreamWriter.WriteLine(strEnteteBody +Inserer_Espaces(8) + agence + reglement.ID + reglement.Nom + reglement.Banque + Inserer_Espaces(12) + agence + compte + reglement.Montant + agence + Inserer_Espaces(6));
monStreamWriter.WriteLine(reglement.Montant);
monStreamWriter.WriteLine ();
}
monStreamWriter.Close();
return monStreamWriter;
}
catch (Exception exception)
{throw ExceptionPropagation.Throw (exception, MethodBase.GetCurrentMethod ());}
}
saved it in a known path (C:\Documents and Settings\My Documents\Visual Studio 2008myprojects\MyFile.txt). I want now to let the user choose where he wants to save his txt File.
How can I import the data from my txt File to copy them in the specified file choosen by the user of my application????
Thank u very much
|
|
|
|
|
Pierre besquent wrote: How can I import the data from my txt File to copy
Seems to me you have that backwards, don't you want to ask the user for the folder to save the file into (there is a directory dialog in winforms) and then save it to that path.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Hi Holmes,
my txt file is well saved in my project and contains the data I want. The problem when the user saves it when he wants and then open it he founds: "System.IO.Streamwriter".
This is my real problem.
ty in advance
(don't understand really u sentence :"
Seems to me you have that backwards"
)
|
|
|
|
|
He means give the user the choice of where to save it. Don't arbitrarily force a path on them that they don't want. Your path structure would be no good for me, for instance, because I like to partition my drives so the C drive contains the OS, the D drive contains my applications, and my E drive is my data drive - which automatically gets backed up onto servers (this is a lot simpler because of the partitioning).
|
|
|
|
|
Hi Pete,
U seem u don't understand my problem well. Me i save my file in a known path of my project (this is absolutely for me) that i write to u. Then I give the user the choice to save his file whatever he likes using this code:
StreamWriter report = (StreamWriter) GGetValue ("_Report");
string myPath = (string) this.GGetValue ("myPath");
this.BodyPage = "list.aspx";
string file_name = "test.txt";
string PresenceClientExtension = "txt";
GRemoveValue ("_Report");
this.Response.ClearHeaders ();
this.Response.Clear ();
this.Response.AddHeader ("content-disposition", "attachment;filename=" + myPath);
this.Response.ContentType = "application/octet-stream";
this.Response.ContentEncoding = Encoding.GetEncoding ("windows-1252");
this.Response.Write (report.ToString());
this.Response.Flush ();
this.Response.End ();
All works fine.the problem appears in the user side.when he save his file and open it he founds:"System.IO.Streamwriter" that is not the data that I have in the file on my project.
this is my real problem.
ty
|
|
|
|
|
Ah, I see what you are saying. The problem occurs because you are using the ToString() method of StreamWriter when you do report.ToString(); . This just writes out the name of the class. All you really need to do is write out a simple string value (that's what is being expected by Response.Write which is a stream writer in it's own right).
Simply read the data you need and store it in a string (there are many suitable ways of doing this), and pass that into Response.Write instead.
|
|
|
|
|
Hi,
Can u please explain to me more "(that's what is being expected by Response.Write which is a stream writer in it's own right).
Simply read the data you need and store it in a string (there are many suitable ways of doing this), and pass that into Response.Write instead.
I don't understand well u solution.
ty
|
|
|
|
|
You should use the SaveFileDialog class to allow the user to choose where to save the file. Here[^] is a link to a number of samples that may help you.
I must get a clever new signature for 2011.
|
|
|
|
|
Hi,
I used it. It appears to the user if he wants to :
-open file
-save file
-cancel
after choosing open or save, the user founds in his file " System.IO.streamwriter"
this is my difficulty
ty
|
|
|
|
|
Pierre besquent wrote: after choosing open or save, the user founds in his file " System.IO.streamwriter"
Sorry, but I don't understand this sentence, could you clarify?
I must get a clever new signature for 2011.
|
|
|
|
|
He's saying that the file contains the name of the class, not the output he's expecting - not surprising since he's used StreamWriter.ToString() .
|
|
|
|
|
hi,
when the user choose " open" or "save" icon (in the dialog appears to him),then he opens his file,it contains just "System.IO.Streamwriter"
ty
|
|
|
|
|
your code could be simplified quite a bit:
1.
formatting numbers with specified width: use custom number formatting, so replace
if (reglement.DateReglement.Month > 9)
strMonth = reglement.DateReglement.Month.ToString ();
else
strMonth = "0" + reglement.DateReglement.Month.ToString ();
by
strMonth = reglement.DateReglement.Month.ToString ("D2");
2.
getting last character of a number: use modulo 10, so replace
string strYear = reglement.DateReglement.Year.ToString ();
s=(strYear.ToCharArray ()) [strYear.Length - 1];
by
s=(reglement.DateReglement.Year%10).ToString();
3.
FYI: If you were to require two-digit year numbers, the whole lot could collapse to a single line of code:
strDate=reglement.DateReglement.ToString("ddMMyy");
If interested, maybe read this[^].
4.
And I assume Inserer_Espaces(N) just returns the number of spaces specified, something new string(' ', N) does too.
BTW: are you familiar with string.PadLeft() and string.PadRight() ?
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
Hi Luc,
thank u a lot for the simplification of my code.I wanna know a solution for my problem
ty
|
|
|
|
|
I told you what the solution was. I just didn't write the code for you - that's up to you.
|
|
|
|
|
you already got the solution from others.
overall suggestion: use fewer ToString() calls, they often are redundant, wasteful, and sometimes wrong.
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
Hi,
I found now the solution . I use the streamreader like this:
StreamReader report = (StreamReader) GGetValue ("_Report");
string myPath = (string) this.GGetValue ("myPath");
string ligne = report.ReadLine ();
this.BodyPage = "list.aspx";
string file_name = "test.txt";
string PresenceClientExtension = "txt";
GRemoveValue ("_Report");
this.Response.ClearHeaders ();
this.Response.Clear ();
this.Response.AddHeader ("content-disposition", "attachment;filename=" + myPath);
this.Response.ContentType = "text/txt";
this.Response.ContentEncoding = Encoding.GetEncoding ("windows-1252");
while (ligne != null)
{
this.Response.Write (ligne);
this.Response.Write("</br>");
this.Response.Flush ();
ligne = report.ReadLine();
}
this.Response.End ();
report.Close ();
All works fine now
Thank u a lot for u all for u big help
|
|
|
|
|
Hi,
I've a assignment where I have to write a program that can parse and evaluate certain numerical expression like
sin(30)*5*log10(300)/6^2%5
Well, I've already done my research through reading articles on code project, there are very good examples on this topic. So I've decided to use STACK based infix to post-fix conversion and finally evaluating the post-fix expression again using stack.
Right Now, I've a class called "Expression" that stores each expression viz. *, /, %, sin, cos, log, tan..and many more. Let say you've following post fix expression
10 20 + 2 ^ sin 56 % 5 *
In simpler term, its infix expression is
(sin((10 + 20)^2) % 56) * 5
Now, during evaluating post fix expression, you encounter operators viz. *, /, ^, %, then you pop two elements from stack and perform this operation and finally you get result. I've like 30 of these mathematical operators, each time these operator occurs in post fix expression (operator is just a character in string), I perform search like
if(operator == '*')
{
return var1 * var2;
}
if(operator == '*')
{
return var1 * var2;
}
if(operator == '/')
{
return var1 / var2;
}
if(operator == '%')
{
return var1 % var2;
}
.
.
.
.
so on
Now this thing alone taking worst case of 30 matches for each of the operator within the post fix, so if post fix has 10 operators, it is gonna take 30*10 = 300 matches (worst case). I'm not able to think of any proper solution for preventing this problem. Currently, I'm thinking of making 30 classes for each of the operator and every class implementing "iExpression" interface, with method signature "evaluate (int var1, int var2)" that will perform specific function during run time without going through 30 if-else statements. But again making 30 classes is weird solution??
Can anybody please help, I would really appreciate it.
Regards,
Shivam Kalra
|
|
|
|