Solved

VB to C# Conversion

Posted on 2004-07-30
15
588 Views
Last Modified: 2010-04-15
Points to whom ever can translate this from VB to C# for me (I don't get VB at all).  To be awarded the points your answer has to work flawlessly, as the VB version does, I will test it and immediatly award the first correct answer the points ;)  Here it is:

dim DocId as string = Request.QueryString("docid")

if DocId & "" = ""
   docid.Text = "default.xml"
end if

dim XmlFilePath as string = Server.MapPath(docid)
 
'Relative file path to XML data
Dim strXmlFilePath as String = Server.MapPath("default.xml")

Dim xDoc as New XPathDocument(strXmlFilePath)
Dim xNav as XPathNavigator = xDoc.CreateNavigator
Dim xNodeIterator as XPathNodeIterator

'Initialize variables
Dim intTotalQuestion as Integer
Dim intQuestionNo as Integer = 1
Dim intScore as Integer = 0
Dim arrAnswerHistory as new ArrayList()

Sub Page_Load(src as Object, e as EventArgs)

      'Start a new quiz?
      If Not Page.IsPostBack Then

            'Yes! Count total question
            intTotalQuestion = xNav.Select("/quiz/mchoice").Count

            'Record start time
            ViewState("StartTime") = DateTime.Now

            ShowQuestion(intQuestionNo)
      End If
End Sub


Sub btnSubmit_Click(src as Object, e as EventArgs)

      'Retrieve essential variables from state bag
      intTotalQuestion = ViewState("TotalQuestion")
      intQuestionNo = ViewState("QuestionNo")
      intScore = ViewState("Score")
      arrAnswerHistory = ViewState("AnswerHistory")

      'Correct answer?
      If rblAnswer.SelectedItem.Value = ViewState("CorrectAnswer") Then
            intScore += 1
            arrAnswerHistory.Add(0)
      Else
            arrAnswerHistory.Add(rblAnswer.SelectedItem.Value)
      End If

      'End of quiz?
      If intQuestionNo=intTotalQuestion Then

            'Yes! Show the result...
            QuizScreen.Visible = False
            ResultScreen.Visible = True

            'Render result screen
            ShowResult()

      Else

            'Not yet! Show another question...
            QuizScreen.Visible = True
            ResultScreen.Visible = False
            intQuestionNo += 1
      
            'Render next question
            ShowQuestion(intQuestionNo)
      End If
End Sub


Sub ShowQuestion(intQuestionNo as Integer)
      Dim strXPath as String
      Dim intLoop as Integer
      Dim objTimeSpent as TimeSpan

      strXPath = "/quiz/mchoice[" & intQuestionNo.ToString() & "]"

      'Extract question
      xNodeIterator = xNav.Select(strXPath & "/question")
      xNodeIterator.MoveNext()
      lblQuestion.Text = intQuestionNo.ToString() & ". " & xNodeIterator.Current.Value

      'Extract answers
      xNodeIterator = xNav.Select(strXPath & "/answer")

      'Clear previous listitems
      rblAnswer.Items.Clear

      intLoop = 0
      While xNodeIterator.MoveNext()
      
            intLoop += 1

            'Add item to radiobuttonlist
            rblAnswer.Items.Add(new ListItem(xNodeIterator.Current.Value, intLoop))

            'Extract correct answer
            If xNodeIterator.Current.GetAttribute("correct","") = "yes" Then
                  ViewState("CorrectAnswer") = intLoop
            End If

      End While

      'Output Total Question
      lblTotalQuestion.Text = intTotalQuestion

      'Output Time Spent
      objTimeSpent = DateTime.Now.Subtract(ViewState("StartTime"))
      lblTimeSpent.Text = objTimeSpent.Minutes.ToString() & ":" & objTimeSpent.Seconds.ToString()

      'Store essential data to state bag
      ViewState("TotalQuestion") = intTotalQuestion
      ViewState("Score") = intScore
      ViewState("QuestionNo") = intQuestionNo
      ViewState("AnswerHistory") = arrAnswerHistory

End Sub

Sub ShowResult()
      Dim strResult as String
      Dim intCompetency as Integer
      Dim intLoop as Integer
      Dim strXPath as String
      Dim objTimeSpent as TimeSpan
      
      objTimeSpent = DateTime.Now.Subtract(ViewState("StartTime"))

      strResult  = "<center>"
      strResult += "<h3>Quiz Result</h3>"
      strResult += "<p>Points: " & intScore.ToString() & " of " & intTotalQuestion.ToString()
      strResult += "<p>Your Competency: " & int(intScore/intTotalQuestion*100).ToString() & "%"
      strResult += "<p>Time Spent: " & objTimeSpent.Minutes.ToString() & ":" & objTimeSpent.Seconds.ToString()
      strResult += "</center>"

      strResult += "<h3>Quiz Breakdown:</h3>"
      For intLoop = 1 to intTotalQuestion
            strXPath = "/quiz/mchoice[" & intLoop.ToString() & "]"
            xNodeIterator = xNav.Select(strXPath & "/question")
            xNodeIterator.MoveNext()
            strResult += "<b>" & intLoop.ToString() & ". " & xNodeIterator.Current.Value & "</b><br>"
            If arrAnswerHistory.Item(intLoop-1)=0 Then
                  strResult += "<font color=""green""><b>Correct</b></font><br><br>"
            Else
                  xNodeIterator = xNav.Select(strXPath & "/answer[" & arrAnswerHistory.Item(intLoop-1).ToString() & "]")
                  xNodeIterator.MoveNext()
                  strResult += "<b>You answered:</b> " & xNodeIterator.Current.Value & "<br>"
                  strResult += "<font color=""red""><b>Incorrect</b></font><br><br>"
            End If
      Next

      lblResult.Text = strResult
End Sub
0
Comment
Question by:Praesidium
15 Comments
 
LVL 37

Expert Comment

by:gregoryyoung
ID: 11680905
namespace bar
{
      public class foo
      {

            private string strXmlFilePath  = Server.MapPath("default.xml");

            private XPathDocument xDoc = new XPathDocument(strXmlFilePath);
            private XPathNavigator xNav = xDoc.CreateNavigator;
            private XPathNodeIterator xNodeIterator;

            int intTotalQuestion;
            int intQuestionNo;
            int intScore;
            int arrAnswerHistory;

            private void Page_Load(object src,EventArgs e)
            {
                  If(!Page.IsPostBack)
                  {
                        intTotalQuestion = xNav.Select("/quiz/mchoice").Count;
                        ViewState["StartTime"] = DateTime.Now;
                        ShowQuestion(intQuestionNo);
                  }
            }
      }

      private void btnSubmit_Click(object src, EventArgs e)
{

      intTotalQuestion = ViewState["TotalQuestion"];
      intQuestionNo = ViewState["QuestionNo"];
      intScore = ViewState["Score"];
      arrAnswerHistory = ViewState["AnswerHistory"];

      if(rblAnswer.SelectedItem.Value = ViewState["CorrectAnswer"])
{
      intScore += 1;
      arrAnswerHistory.Add(0);
}
      arrAnswerHistory.Add(rblAnswer.SelectedItem.Value);
}

if(intQuestionNo==intTotalQuestion)
{

QuizScreen.Visible = false;
ResultScreen.Visible = true;

ShowResult();

}

QuizScreen.Visible = true;
ResultScreen.Visible = false;
intQuestionNo += 1;
     
ShowQuestion(intQuestionNo);
}
}

private void ShowQuestion(int intQuestionNo) {
string strXPath;
int intLoop;
TimeSpan objTimeSpent;

strXPath = "/quiz/mchoice[" & intQuestionNo.ToString() & "]";

xNodeIterator = xNav.Select(strXPath & "/question");
xNodeIterator.MoveNext();
lblQuestion.Text = intQuestionNo.ToString() + ". " + xNodeIterator.Current.Value;

xNodeIterator = xNav.Select(strXPath & "/answer");

rblAnswer.Items.Clear();

intLoop = 0;
while(xNodeIterator.MoveNext()); {
    intLoop += 1;
    rblAnswer.Items.Add(new ListItem(xNodeIterator.Current.Value, intLoop));

    if(xNodeIterator.Current.GetAttribute("correct","") == "yes") {
           ViewState["CorrectAnswer"] = intLoop;
    }
}
lblTotalQuestion.Text = intTotalQuestion;

objTimeSpent = DateTime.Now.Subtract(ViewState["StartTime"]);
lblTimeSpent.Text = objTimeSpent.Minutes.ToString() + ":" + objTimeSpent.Seconds.ToString();

ViewState["TotalQuestion"] = intTotalQuestion;
ViewState["Score"] = intScore;
ViewState["QuestionNo"] = intQuestionNo;
ViewState["AnswerHistory"] = arrAnswerHistory;

}

private void ShowResult() {
  string strResult;
int intCompetency;
int intLoop;
string strXPath;
TimeSpan objTimeSpent;
     
objTimeSpent = DateTime.Now.Subtract(ViewState["StartTime"]);

strResult  = "<center>";
strResult += "<h3>Quiz Result</h3>";
strResult += "<p>Points: " + intScore.ToString() + " of " + intTotalQuestion.ToString();
strResult += "<p>Your Competency: " + int(intScore/intTotalQuestion*100).ToString() + "%%";
strResult += "<p>Time Spent: " + objTimeSpent.Minutes.ToString() + ":" + objTimeSpent.Seconds.ToString();
strResult += "</center>";

strResult += "<h3>Quiz Breakdown:</h3>";
for(intLoop=1;intLoop<=intTotalQuestion;intLoop++) {
     strXPath = "/quiz/mchoice[" + intLoop.ToString() + "]";
     xNodeIterator = xNav.Select(strXPath & "/question");
     xNodeIterator.MoveNext();
     strResult += "<b>" + intLoop.ToString() + ". " & xNodeIterator.Current.Value + "</b><br>";
     if(arrAnswerHistory.Item[intLoop-1]==0) {
         strResult += "<font color=""green""><b>Correct</b></font><br><br>";
     } else {
         xNodeIterator = xNav.Select(strXPath + "/answer[" + arrAnswerHistory.Item[intLoop-1].ToString() + "]");
         xNodeIterator.MoveNext();
         strResult += "<b>You answered:</b> " + xNodeIterator.Current.Value + "<br>";
         strResult += "<font color=""red""><b>Incorrect</b></font><br><br>";
     }
}

lblResult.Text = strResult;
}
}
}

will be close but I dont have asp.net on tis machine.
0
 
LVL 6

Author Comment

by:Praesidium
ID: 11680931
looks good... let me test it and I will award tell you if it works...
0
 
LVL 37

Expert Comment

by:gregoryyoung
ID: 11680939
its not perfect im sure but pretty close ...
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 22

Expert Comment

by:_TAD_
ID: 11681045


"Give a mana fish, feed him for a day.  Teach a man to fish, feed him for a lifetime."


Go here:
http://support.microsoft.com/?kbid=308470

Download and print.  26 pages, very useful.
0
 
LVL 6

Author Comment

by:Praesidium
ID: 11681166
@_TAD_  Thanks for the article...  I am reading it now... My VB is beyond slack...  

@gregoryyoung I am doing some static casts to read the objects, I will let you know if everything looks correct.  
0
 
LVL 6

Author Comment

by:Praesidium
ID: 11681713
Okay...  gregoryyoung... close, but no cigar my friend... I casted a bunch of things...  changed the array structure a bit... but now I'm hitting a wall I can't say I've hit before...  My code (follows) wont' compile because it claims 'Pace.quiz.xDoc' denotes a 'field' where a 'class' was expected, and I can't seem to figure out why.  I would be glad to increase the points on this question, however the rules say I can't do that...  Any Ideas?


Namespace Pace
{
      /// <summary>
      /// XML Based Quiz Utility
      /// </summary>
      public class quiz : System.Web.UI.Page{
                        
                  protected Button btnSubmit;
                  protected Label lblQuestion;
                  protected RadioButtonList rblAnswer;
                  protected Label lblTotalQuestion;
                  protected Label lblTimeSpent;
                  protected Label lblResult;
                  protected Panel QuizScreen;
                  protected Panel ResultScreen;
                  
                  public static string strXmlDoc = "default.xml";
                  public static string strXmlFilePath = ("~/media/quizzes/" + strXmlDoc);
                  
                  int intTotalQuestion;
                  int intQuestionNo;
                  int intScore;

                  XPathDocument xDoc = new XPathDocument(strXmlFilePath);
                  XPathNavigator xNav = xDoc.CreateNavigator();
                  XPathNodeIterator xNodeIterator;
                  System.Collections.ArrayList arrAnswerHistory = new ArrayList();
            
                  private void Page_Load(object sender, System.EventArgs e){
                        if(!Page.IsPostBack){
                        intTotalQuestion = xNav.Select("/quiz/mchoice").Count;
                              ViewState["StartTime"] = DateTime.Now;
                              ShowQuestion(intQuestionNo);
                        }
                  }

                  private void btnSubmit_Click(object src, EventArgs e) {

                        intTotalQuestion = (int)this.ViewState["TotalQuestion"];
                        intQuestionNo = (int)this.ViewState["QuestionNo"];
                        intScore = (int)this.ViewState["Score"];
                        arrAnswerHistory = (System.Collections.ArrayList)this.ViewState["AnswerHistory"];

                        if(rblAnswer.SelectedItem.Value == (string)this.ViewState["CorrectAnswer"]) {
                              intScore += 1;
                              arrAnswerHistory.Add(0);
                        }
                  
                        arrAnswerHistory.Add(rblAnswer.SelectedItem.Value);

                        if(intQuestionNo==intTotalQuestion) {

                              QuizScreen.Visible = false;
                              ResultScreen.Visible = true;
                              ShowResult();

                        }

                        QuizScreen.Visible = true;
                        ResultScreen.Visible = false;
                        intQuestionNo += 1;
                 
                        ShowQuestion(intQuestionNo);
                  }

                  private void ShowQuestion(int intQuestionNo) {
                        string strXPath;
                        int intLoop;
                        TimeSpan objTimeSpent;

                        strXPath = "/quiz/mchoice[intQuestionNo.ToString()]";

                        xNodeIterator = xNav.Select(strXPath + "/question");
                        xNodeIterator.MoveNext();
                        lblQuestion.Text = intQuestionNo.ToString() + ". " + xNodeIterator.Current.Value;

                        xNodeIterator = xNav.Select(strXPath + "/answer");

                        rblAnswer.Items.Clear();

                        intLoop = 0;
                        while(xNodeIterator.MoveNext()){
                              intLoop += 1;
                              rblAnswer.Items.Add(new ListItem(xNodeIterator.Current.Value, intLoop.ToString()));

                              if(xNodeIterator.Current.GetAttribute("correct","") == "yes") {
                                    ViewState["CorrectAnswer"] = intLoop;
                              }
                        }
                        lblTotalQuestion.Text = intTotalQuestion.ToString();

                        objTimeSpent = DateTime.Now.Subtract((DateTime)this.ViewState["StartTime"]);
                        lblTimeSpent.Text = objTimeSpent.Minutes.ToString() + ":" + objTimeSpent.Seconds.ToString();

                        ViewState["TotalQuestion"] = intTotalQuestion;
                        ViewState["Score"] = intScore;
                        ViewState["QuestionNo"] = intQuestionNo;
                        ViewState["AnswerHistory"] = arrAnswerHistory;

                  }

                  private void ShowResult() {
                        string strResult;
                        int intLoop;
                        string strXPath;
                        TimeSpan objTimeSpent;
                      
                        objTimeSpent = DateTime.Now.Subtract((DateTime)this.ViewState["StartTime"]);

                        strResult  = "<center>";
                        strResult += "<h3>Quiz Result</h3>";
                        strResult += "<p>Points: " + intScore.ToString() + " of " + intTotalQuestion.ToString();
                        strResult += "<p>Your Competency: " + (intScore/intTotalQuestion*100).ToString() + "%%";
                        strResult += "<p>Time Spent: " + objTimeSpent.Minutes.ToString() + ":" + objTimeSpent.Seconds.ToString();
                        strResult += "</center>";

                        strResult += "<h3>Quiz Breakdown:</h3>";
                        for(intLoop=1;intLoop<=intTotalQuestion;intLoop++) {
                              strXPath = "/quiz/mchoice[" + intLoop.ToString() + "]";
                              xNodeIterator = xNav.Select(strXPath + "/question");
                              xNodeIterator.MoveNext();
                              strResult += "<b>" + intLoop.ToString() + ". " + xNodeIterator.Current.Value + "</b><br>";
                              if((arrAnswerHistory.Count - 1) == 0) {
                                    strResult += "<b>Correct</b><br><br>";
                              } else {
                                    xNodeIterator = xNav.Select(strXPath + "/answer[" + (arrAnswerHistory.Count - 1).ToString() + "]");
                                    xNodeIterator.MoveNext();
                                    strResult += "<b>You answered:</b> " + xNodeIterator.Current.Value + "<br>";
                                    strResult += "<b>Incorrect</b></font><br><br>";
                              }
                        }

                        lblResult.Text = strResult;
                  }
            }
}
0
 
LVL 37

Expert Comment

by:gregoryyoung
ID: 11681743
whhat line ? I cant compile here
0
 
LVL 6

Author Comment

by:Praesidium
ID: 11681964
XPathNavigator xNav = xDoc.CreateNavigator();
0
 
LVL 37

Expert Comment

by:gregoryyoung
ID: 11682054
yes those should have private in front of them ... I wasnt quite sure if that code was intended to be there or not.
0
 
LVL 37

Expert Comment

by:gregoryyoung
ID: 11682067
move the news to the constructor ...

private XPathNavigator foo;


then instantiate it in the constructor.
0
 
LVL 37

Expert Comment

by:gregoryyoung
ID: 11682074
you can only use static members for initialization like that ... instance members require you to use the constructor to perform the operation.
0
 
LVL 6

Author Comment

by:Praesidium
ID: 11682506
Okay, I got it to compile correctly, I didn't realize I could only use static members...  The code complied like I said, and the page runs with no exceptions... HOWEVER...  It doesn't retrieve the document... I think it must be something simple I'm overlooking...

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Xml.XPath;


namespace Pace
{
      /// <summary>
      /// Summary description for quiz.
      /// </summary>
      public class quiz : System.Web.UI.Page{
                        
                  protected Button btnSubmit;
                  protected Label lblQuestion;
                  protected RadioButtonList rblAnswer;
                  protected Label lblTotalQuestion;
                  protected Label lblTimeSpent;
                  protected Label lblResult;
                  protected Panel QuizScreen;
                  protected Panel ResultScreen;
                  
                  XPathNavigator xNav;
                  XPathDocument xDoc;
                  XPathNodeIterator xNodeIterator;
                  System.Collections.ArrayList arrAnswerHistory = new ArrayList();
                  
                  int intTotalQuestion;
                  int intQuestionNo;
                  int intScore;
                  protected override void OnInit(EventArgs e) {
                        base.OnInit(e);
                        this.InitializeComponent();

                        string strXmlDoc = "default.xml";
                        string strXmlFilePath = Server.MapPath("~/media/quizzes/default.xml" );
                        XPathDocument xDoc = new XPathDocument(strXmlFilePath);
                        XPathNavigator xNav = xDoc.CreateNavigator();
                  }

                  private void InitializeComponent() {
                        this.btnSubmit.Click += new EventHandler(this.btnSubmit_Click);
                  }
                  
                  public static void Main() {
                                          
                  }

                  private void Page_Load(object sender, System.EventArgs e){
                        this.Main();

                        if(!Page.IsPostBack){
                              intTotalQuestion = xNav.Select("/quiz/mchoice").Count;
                              ViewState["StartTime"] = DateTime.Now;
                              ShowQuestion(intQuestionNo);
                        }
                  }

                  private void btnSubmit_Click(object src, EventArgs e) {

                        intTotalQuestion = (int)this.ViewState["TotalQuestion"];
                        intQuestionNo = (int)this.ViewState["QuestionNo"];
                        intScore = (int)this.ViewState["Score"];
                        arrAnswerHistory = (System.Collections.ArrayList)this.ViewState["AnswerHistory"];

                        if(rblAnswer.SelectedItem.Value == (string)this.ViewState["CorrectAnswer"]) {
                              intScore += 1;
                              arrAnswerHistory.Add(0);
                        }
                  
                        arrAnswerHistory.Add(rblAnswer.SelectedItem.Value);

                        if(intQuestionNo==intTotalQuestion) {

                              QuizScreen.Visible = false;
                              ResultScreen.Visible = true;
                              ShowResult();

                        }

                        QuizScreen.Visible = true;
                        ResultScreen.Visible = false;
                        intQuestionNo += 1;
                 
                        ShowQuestion(intQuestionNo);
                  }

                  private void ShowQuestion(int intQuestionNo) {
                        string strXPath;
                        int intLoop;
                        TimeSpan objTimeSpent;

                        strXPath = "/quiz/mchoice[intQuestionNo.ToString()]";

                        xNodeIterator = xNav.Select(strXPath + "/question");
                        xNodeIterator.MoveNext();
                        lblQuestion.Text = intQuestionNo.ToString() + ". " + xNodeIterator.Current.Value;

                        xNodeIterator = xNav.Select(strXPath + "/answer");

                        rblAnswer.Items.Clear();

                        intLoop = 0;
                        while(xNodeIterator.MoveNext()){
                              intLoop += 1;
                              rblAnswer.Items.Add(new ListItem(xNodeIterator.Current.Value, intLoop.ToString()));

                              if(xNodeIterator.Current.GetAttribute("correct","") == "yes") {
                                    ViewState["CorrectAnswer"] = intLoop;
                              }
                        }
                        lblTotalQuestion.Text = intTotalQuestion.ToString();

                        objTimeSpent = DateTime.Now.Subtract((DateTime)this.ViewState["StartTime"]);
                        lblTimeSpent.Text = objTimeSpent.Minutes.ToString() + ":" + objTimeSpent.Seconds.ToString();

                        ViewState["TotalQuestion"] = intTotalQuestion;
                        ViewState["Score"] = intScore;
                        ViewState["QuestionNo"] = intQuestionNo;
                        ViewState["AnswerHistory"] = arrAnswerHistory;

                  }

                  private void ShowResult() {
                        string strResult;
                        int intLoop;
                        string strXPath;
                        TimeSpan objTimeSpent;
                      
                        objTimeSpent = DateTime.Now.Subtract((DateTime)this.ViewState["StartTime"]);

                        strResult  = "<center>";
                        strResult += "<h3>Quiz Result</h3>";
                        strResult += "<p>Points: " + intScore.ToString() + " of " + intTotalQuestion.ToString();
                        strResult += "<p>Your Competency: " + (intScore/intTotalQuestion*100).ToString() + "%%";
                        strResult += "<p>Time Spent: " + objTimeSpent.Minutes.ToString() + ":" + objTimeSpent.Seconds.ToString();
                        strResult += "</center>";

                        strResult += "<h3>Quiz Breakdown:</h3>";
                        for(intLoop=1;intLoop<=intTotalQuestion;intLoop++) {
                              strXPath = "/quiz/mchoice[" + intLoop.ToString() + "]";
                              xNodeIterator = xNav.Select(strXPath + "/question");
                              xNodeIterator.MoveNext();
                              strResult += "<b>" + intLoop.ToString() + ". " + xNodeIterator.Current.Value + "</b><br>";
                              if((arrAnswerHistory.Count - 1) == 0) {
                                    strResult += "<b>Correct</b><br><br>";
                              } else {
                                    xNodeIterator = xNav.Select(strXPath + "/answer[" + (arrAnswerHistory.Count - 1).ToString() + "]");
                                    xNodeIterator.MoveNext();
                                    strResult += "<b>You answered:</b> " + xNodeIterator.Current.Value + "<br>";
                                    strResult += "<b>Incorrect</b></font><br><br>";
                              }
                        }

                        lblResult.Text = strResult;
                  }
            }
}
0
 
LVL 3

Accepted Solution

by:
dukkorg earned 500 total points
ID: 11682556
You could also compile your VB.Net (or any other CLR language) code and use Reflector .Net found here: http://www.aisto.com/roeder/dotnet/ with this add-on: http://www.denisbauer.com/NETTools/FileDisassembler.aspx to decompile it to C#, Delphi.Net, or IL this works very well but also some minor bugs now and then.

I wouldn't be surprised if this is what the people that posted did (or if they didn't they should have).

Just for future reference... I wouldn't want you to waste your points.
0
 
LVL 6

Author Comment

by:Praesidium
ID: 11682641
They are unlimited, I'm not worried about those... Thanks a ton for the tip though!
0
 
LVL 19

Expert Comment

by:Desp
ID: 11683007

nice link and and good quote TAD ;)
0

Featured Post

The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article introduced a TextBox that supports transparent background.   Introduction TextBox is the most widely used control component in GUI design. Most GUI controls do not support transparent background and more or less do not have the…
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
In a recent question (https://www.experts-exchange.com/questions/28997919/Pagination-in-Adobe-Acrobat.html) here at Experts Exchange, a member asked how to add page numbers to a PDF file using Adobe Acrobat XI Pro. This short video Micro Tutorial sh…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question