Solved

VB to C# Conversion

Posted on 2004-07-30
15
584 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
 
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
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
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

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
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.
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

746 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now