Click here to Skip to main content
15,884,237 members

Eddy Vluggen - Professional Profile



Summary

    Blog RSS
5,666
Author
85,259
Authority
94,632
Debator
62
Editor
1,024
Enquirer
16,660
Organiser
13,346
Participant
I'm a Delphi-convert, mostly into WinForms and C#. My first article is from 2001, extending the Delphi-debugger, which is still visible on the WayBackMachine[^] and even available in Russian[^] Smile | :)
31 Dec 2018 CodeProject MVP 2019
31 Dec 2012 MVP: CodeProject MVP 2013
31 Dec 2009 CodeProject MVP 2010

 

Groups

Below is the list of groups in which the member is participating

United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
This is a Collaborative Group
This member has Member status in this group

136 members

Reputation

Weekly Data. Recent events may not appear immediately. For information on Reputation please see the FAQ.

Privileges

Members need to achieve at least one of the given member levels in the given reputation categories in order to perform a given action. For example, to store personal files in your account area you will need to achieve Platinum level in either the Author or Authority category. The "If Owner" column means that owners of an item automatically have the privilege. The member types column lists member types who gain the privilege regardless of their reputation level.

ActionAuthorAuthorityDebatorEditorEnquirerOrganiserParticipantIf OwnerMember Types
Have no restrictions on voting frequencysilversilversilversilver
Bypass spam checks when posting contentsilversilversilversilversilversilvergoldSubEditor, Mentor, Protector, Editor
Store personal files in your account areaplatinumplatinumSubEditor, Editor
Have live hyperlinks in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Have the ability to include a biography in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Edit a Question in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Edit an Answer in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Delete a Question in Q&AYesSubEditor, Protector, Editor
Delete an Answer in Q&AYesSubEditor, Protector, Editor
Report an ArticlesilversilversilversilverSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending ArticlegoldgoldgoldgoldSubEditor, Mentor, Protector, Editor
Edit other members' articlesSubEditor, Protector, Editor
Create an article without requiring moderationplatinumSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending QuestionProtector
Approve/Disapprove a pending AnswerProtector
Report a forum messagesilversilverbronzeProtector, Editor
Approve/Disapprove a pending Forum MessageProtector
Have the ability to send direct emails to members in the forumsProtector
Create a new tagsilversilversilversilver
Modify a tagsilversilversilversilver

Actions with a green tick can be performed by this member.


 
GeneralBookmarks Pin
Eddy Vluggen18-Mar-11 4:14
professionalEddy Vluggen18-Mar-11 4:14 
GeneralRelated Utilities Pin
Eddy Vluggen2-Mar-12 12:10
professionalEddy Vluggen2-Mar-12 12:10 
NewsOnline tools Pin
Eddy Vluggen14-Mar-12 8:21
professionalEddy Vluggen14-Mar-12 8:21 
NewsCustom Controls / Libraries Pin
Eddy Vluggen9-Apr-12 9:54
professionalEddy Vluggen9-Apr-12 9:54 
NewsDebugging Pin
Eddy Vluggen26-Apr-12 22:02
professionalEddy Vluggen26-Apr-12 22:02 
NewsDesign Patterns Pin
Eddy Vluggen17-Jun-12 0:25
professionalEddy Vluggen17-Jun-12 0:25 
GeneralRefactorings Pin
Eddy Vluggen7-Oct-10 12:55
professionalEddy Vluggen7-Oct-10 12:55 
GeneralRe: Refactorings Pin
Vercas26-Dec-10 5:31
Vercas26-Dec-10 5:31 
News.NET related snippets Pin
Eddy Vluggen5-Oct-10 9:58
professionalEddy Vluggen5-Oct-10 9:58 
GeneralTemporaryOverride class Pin
Eddy Vluggen5-Oct-10 10:15
professionalEddy Vluggen5-Oct-10 10:15 
NewsTemporaryOverride class (VB.NET version) Pin
Eddy Vluggen22-Jul-11 4:30
professionalEddy Vluggen22-Jul-11 4:30 
NewsScopedSupportInitialize Pin
Eddy Vluggen10-Apr-12 8:35
professionalEddy Vluggen10-Apr-12 8:35 
GeneralA clean CreateDelegate Pin
Eddy Vluggen13-Apr-11 10:04
professionalEddy Vluggen13-Apr-11 10:04 
NewsInterop with .NET, tested with Lazarus; Pin
Eddy Vluggen13-Sep-11 12:32
professionalEddy Vluggen13-Sep-11 12:32 
NewsStandard reader-pattern Pin
Eddy Vluggen29-Oct-11 14:31
professionalEddy Vluggen29-Oct-11 14:31 
NewsAttributionAttribute AboutBox Pin
Eddy Vluggen29-Oct-11 14:55
professionalEddy Vluggen29-Oct-11 14:55 
NewsMy BigInt implementation Pin
Eddy Vluggen11-Nov-11 7:20
professionalEddy Vluggen11-Nov-11 7:20 
C#
using System;
using System.Text;
using System.Collections.Generic;
 
namespace MyBigInt
{
    class Program

    {
        public static void Main(string[] args)
        {
            Random rnd = new Random(DateTime.Now.Millisecond);
            long t1 = rnd.Next(0, 99999);
            long t2 = rnd.Next(0, 99999);
 
            MyBigInt bi1 = new MyBigInt(t1.ToString());
            MyBigInt bi2 = new MyBigInt(t2.ToString());
 
            MyBigInt addition = bi1 + bi2;
            MyBigInt multiplication = bi1 * bi2;
 
            Console.WriteLine("Verification: {0} + {1} = {2}", t1, t2, (t1 + t2));
            Console.WriteLine("MyBigInt: {0} + {1} = {2}", bi1, bi2, addition);
            Console.WriteLine(string.Empty);
            Console.WriteLine("Verification: {0} * {1} = {2}", t1, t2, (t1 * t2));
            Console.WriteLine("MyBigInt: {0} * {1} = {2}", bi1, bi2, multiplication);
            Console.WriteLine(string.Empty);
            Console.WriteLine("Any key for a big test :)\n");
            Console.ReadKey(true);
 
            // Generate two huge numbers
            string t3 = string.Empty;
            string t4 = string.Empty;

            StringBuilder builder = new StringBuilder(50);
            for (int i = 0; i < 50; i++)
                builder.Append(rnd.Next(0, 9));
            t3 = builder.ToString();
 
            builder = new StringBuilder(50);
            for (int i = 0; i < 50; i++)
                builder.Append(rnd.Next(0, 9));
            t4 = builder.ToString();
 
            MyBigInt bi3 = new MyBigInt(t3);
            MyBigInt bi4 = new MyBigInt(t4);
            Console.WriteLine("Huge addition:\n    {0}\n +  {1}\n = {2}\n", bi3, bi4, bi3 + bi4);
            Console.WriteLine("\nHuge multiplication:\n {0}\n * {1}\n = {2}", bi3, bi4, bi3 * bi4);
            Console.WriteLine(string.Empty);
            Console.WriteLine("Any key closes :)");
            Console.ReadKey(true);
        }
    }
 
    class MyBigInt
    {
        string _value;

        public MyBigInt(string value)
        {
            _value = value;
        }

        public MyBigInt() : this("0") { }
 
        public static MyBigInt operator +(MyBigInt b1, MyBigInt b2)
        {
            string result = string.Empty;
 
            // If b2 is the larger one, swap 'em;
            // this way the largest is always "in front"
            if (b1.Size < b2.Size)
            {
                MyBigInt b3 = b2;

                b2 = b1;
                b1 = b3;
            }
 
            int d1, d2;        // current digit (from b1 and b2)
            string sumD1D2;    // intermediate sum of d1 + d2
            string d3;         // the most-right number of that sum
            int c = 0;         // what needs be carried

            for (int idx1 = 1; idx1 <= b1.Size; idx1++)
            {
                d1 = b1.GetDigit(idx1);
                d2 = b2.GetDigit(idx1);

                sumD1D2 = (d1 + d2 + c).ToString();
 
                d3 = sumD1D2.Substring(sumD1D2.Length - 1, 1);
                result = d3 + result;
 
                // carry?               
                if (sumD1D2.Length > 1)
                    c = int.Parse(sumD1D2.Remove(sumD1D2.Length - 1, 1));
                else
                    c = 0;
            }
            return new MyBigInt((c == 0 ? "" : c.ToString()) + result);
        }
 
        public static MyBigInt operator *(MyBigInt b1, MyBigInt b2)
        {
            string result = string.Empty;
 
            // If b2 is the larger one, swap 'em;
            // this way the largest is always "in front"
            if (b1.Size < b2.Size)
            {
                MyBigInt b3 = b2;

                b2 = b1;
                b1 = b3;
            }
 
            int d1, d2;        // current digit (from b1 and b2)
            string sumD1D2;    // intermediate sum of d1 + d2
            string d3;         // the most-right number of that sum
            int c = 0;         // what needs be carried 
            List<MyBigInt> sumList = new List<MyBigInt>();

            for (int idx2 = 1; idx2 <= b1.Size; idx2++)
            {
                c = 0;
                result = string.Empty;

                for (int idx1 = 1; idx1 <= b2.Size; idx1++)
                {
                    d1 = b1.GetDigit(idx2);
                    d2 = b2.GetDigit(idx1);

                    sumD1D2 = ((d1 * d2) + c).ToString();
 
                    d3 = sumD1D2.Substring(sumD1D2.Length - 1, 1);
                    result = d3 + result;
 
                    // carry?               
                    if (sumD1D2.Length > 1)
                        c = int.Parse(sumD1D2.Remove(sumD1D2.Length - 1, 1));
                    else
                        c = 0;
                }
                MyBigInt subTtl = new MyBigInt((c == 0 ? "" : c.ToString()) + result + new string('0', idx2 - 1));

                sumList.Add(subTtl);
            }
 
            // sum subtotals
            MyBigInt grandTotal = new MyBigInt("0");

            foreach (MyBigInt subTotal in sumList)
                grandTotal += subTotal;
 
            return grandTotal;
        }
 
        int GetDigit(int index)
        {
            if (Size - index < 0)
                return 0;

            if (Size - index > _value.Length)
                return 0;
 
            return _value[Size - index] - '0';
        }
 
        public int Size
        {
            get { return _value.Length; }
        }
 
        public override string ToString()
        {
            return _value;
        }
    }
}

Bastard Programmer from Hell Suspicious | :suss:

NewsExpensive Exceptions Pin
Eddy Vluggen19-Sep-16 1:03
professionalEddy Vluggen19-Sep-16 1:03 
GeneralRe: Expensive Exceptions Pin
PIEBALDconsult16-May-18 15:06
mvePIEBALDconsult16-May-18 15:06 
GeneralRe: Expensive Exceptions Pin
Eddy Vluggen16-May-18 22:43
professionalEddy Vluggen16-May-18 22:43 
GeneralTSQL: Fetch metadata for a table Pin
Eddy Vluggen6-Sep-10 9:54
professionalEddy Vluggen6-Sep-10 9:54 
GeneralTSQL: Fetch tables without Primary Key Pin
Eddy Vluggen31-Jan-11 1:36
professionalEddy Vluggen31-Jan-11 1:36 
GeneralTSQL: Fetch tables without clustered index Pin
Eddy Vluggen1-Feb-11 21:04
professionalEddy Vluggen1-Feb-11 21:04 
GeneralRe: TSQL: Fetch metadata for a table Pin
PIEBALDconsult16-May-18 15:08
mvePIEBALDconsult16-May-18 15:08 
GeneralVisual Studio macro's: replacing the default help-system Pin
Eddy Vluggen2-Sep-10 9:49
professionalEddy Vluggen2-Sep-10 9:49 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.