|
|
Maybe yes, maybe no.
Text files are (generally) sequential rather than indexed.
Without an index you can't just jump to a "line" and read it; you need to read until you find what you want.
|
|
|
|
|
Yes, if the file is not very huge (hint for very huge: size greater than 75% of your RAM), use File.ReadAllLines method to store the data of file in a string array, and depending on the input from the user (or whatever) display the line.
HTH.
Do rate the reply, if it helps or even if it doesnot, because it helps the members to know, what solved the issue. Thanks.
|
|
|
|
|
The third answer you got was the right one, I just want to add, this code does not change if you're working on a console app, because it has nothing to do with the presentation part of the program.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Unable to install and run .Net application which uses COM Interop. Please offer suggestions.
The Following message occurs on the target machine:
System.Runtime.InteropServices.ComException(0x80040112): Creating an instance of the COM component with CLSID {248DD896-BB45-11CF-9ABC-0080C7E7B78D } from the IClassFactory failed due to the following error: 80040112
At Esc.Tos.Utilities.TCP.escTCP..ctor()
At clsTCP..ctror()
At mdlMain.ConfigureGlobalItems(frmMain theForm)
At frmMAin..ctor()
At Program.Main()
Of course the application runs dandy on the development box, and other development boxes.
Background and useful information:
1) Com object 248DD896-BB45-11CF-9ABC-0080C7E7B78D is the Winsock v.6 control.
2) On the target machine there is application A and application B
Application A is a VB6 application which uses said COM object and sends TCP Messages
Therefore, I assume that com object is correctly install and functional.
Application B is My .Net application and throws the above error.
Things I have tried:
1) Copy OCX locally and reregister
2) Run RegASM on the Interop Assemblies
3) Clean the registry
4) Validated the Interop code is pointing to the correct OCX. (using Lutz)
5) Installed applicaiton onto alternate development box using xcopy and life is good.
~Jason
You can only be young once. But you can always be immature.
- Dave Barry
|
|
|
|
|
Yeah, don't use COM Interop.
|
|
|
|
|
Install VB6 tools on the machine you need to deploy.....it will do all what is necessary to run it!
HTH.
Do rate the reply, if it helps or even if it doesnot, because it helps the members to know, what solved the issue. Thanks.
|
|
|
|
|
VB6 Tools? I am not familar with that product, Could you include a link. Googling it gives me ... lots of similar stuff.
You can only be young once. But you can always be immature.
- Dave Barry
|
|
|
|
|
I found that in Visual Studio 6 installation once i needed!
The issue is with registry entries, if you run VS6 installation and install only Tools from it, hopefully the problem will be solved.
Additionally, this might be helpful http://support.microsoft.com/kb/146219[^]
HTH.
Do rate the reply, if it helps or even if it doesnot, because it helps the members to know, what solved the issue. Thanks.
|
|
|
|
|
Alright, here is the solution. There is a licenes registry key missing. The most likely violates some eula somewhere. so use with caution. but adding this key will reactiviate the winsock.ocx
[HKEY_CLASSES_ROOT\Licenses\2c49f800-c2dd-11cf-9ad6-0080c7e7b78d]
@ = "mlrljgrlhltlngjlthrligklpkrhllglqlrk"
You can only be young once. But you can always be immature.
- Dave Barry
|
|
|
|
|
Hi
I'm trying to write a WM 5.0 console application which can send string data to a text box on a web page (Internet Explorer). Any suggestions on this?
|
|
|
|
|
I should mention this is a C# console application
|
|
|
|
|
I thought I would also mention that this sample code below for win32 c# does nothing. It runs but no message is displayed in the console. I'm using VS 2005. I find this example all over the net.
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
class Program
{
[DllImport("msvcrt.dll")]
public static extern int puts(
[MarshalAs(UnmanagedType.LPStr)]
string m);
[DllImport("msvcrt.dll")]
internal static extern int _flushall();
public static void Main()
{
puts("Hello World!");
_flushall();
return;
}
}
}
|
|
|
|
|
For mentioning and re-mentioning, you can always use Edit link at bottom right of your post.
Do rate the reply, if it helps or even if it doesnot, because it helps the members to know, what solved the issue. Thanks.
|
|
|
|
|
The only way to send text to a web page, is to host that web page in your own windows application, so you can directly access and change the HTML of the page.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
I dug in to some very old c code of mine for the solution. I didn't expect it to work but I'm not complaining. Here is the SIMPLE solution for anyone that is interested:
Add to your project:
using System.Runtime.InteropServices;
[DllImport("coredll.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags,
int dwExtraInfo);
Then add this function, please note many of the original C constants are not valid in C# but you can look them up and define them for WM 5.0 if you need them. My app only needed to worry about alphanumeric data, no special characters.
static void SendKeyStroke(int mevent)
{
//*******************************************************
//send character to screen by simulating a key press
//*******************************************************
int evt = 0;
byte keyCode = 0x00;
//SPECIAL KEYS *************
const int KEYEVENTF_EXTENDEDKEY = 0x1;
const int KEYEVENTF_KEYUP = 0x2;
const int VK_RETURN = 0x0D;
const int VK_SHIFT = 0x10;
const int VK_SPACE = 0x20;
//**************************
evt = mevent;
/*
//these codes are not defined
switch(mevent)
{
case 258: evt = VK_DOWN; break; //down arrow
case 259: evt = VK_LEFT; break; //left arrow
case 300: evt = VK_RETURN; break; //return key
case 301: evt = VK_UP; break; //up arrow
case 302: evt = VK_BACK; break; //back space key
case 10: evt = NULL; break; //do nothing
case 59: evt = VK_SEMICOLON; break; // ;
case 61: evt = VK_EQUAL; break; // =
case 44: evt = VK_COMMA; break; // ,
case 45: evt = VK_HYPHEN; break; // -
case 46: evt = VK_PERIOD; break; // .
case 47: evt = VK_SLASH; break; // /
case 91: evt = VK_LBRACKET; break; // [
case 92: evt = VK_BACKSLASH; break; // "\" char
case 93: evt = VK_RBRACKET; break; // ]
case 39: evt = VK_APOSTROPHE; break; // '
//shifted keys(same order as above)
case 58: evt = VK_SEMICOLON; keybd_event(VK_SHIFT, 0, 0, 0); break; //colon :
case 43: evt = VK_EQUAL; keybd_event(VK_SHIFT, 0, 0, 0); break;//plus +
case 60: evt = VK_COMMA; keybd_event(VK_SHIFT, 0, 0, 0); break;//***less than*** <<br mode="hold" /> case 95: evt = VK_HYPHEN; keybd_event(VK_SHIFT, 0, 0, 0); break;//underscore _
case 62: evt = VK_PERIOD; keybd_event(VK_SHIFT, 0, 0, 0); break;//greater than >
case 63: evt = VK_SLASH; keybd_event(VK_SHIFT, 0, 0, 0); break;//question ?
case 123: evt = VK_LBRACKET; keybd_event(VK_SHIFT, 0, 0, 0); break;//curly {
case 124: evt = VK_BACKSLASH; keybd_event(VK_SHIFT, 0, 0, 0); break;//or |
case 125: evt = VK_RBRACKET; keybd_event(VK_SHIFT, 0, 0, 0); break;//curly }
case 34: evt = VK_APOSTROPHE; keybd_event(VK_SHIFT, 0, 0, 0); break; //quote "
//shifted keys off the numbers
case 33: evt = 49; keybd_event(VK_SHIFT, 0, 0, 0); break;// 1 ! = 33
case 64: evt = 50; keybd_event(VK_SHIFT, 0, 0, 0); break;// 2 @ = 64
case 35: evt = 51; keybd_event(VK_SHIFT, 0, 0, 0); break;// 3 # = 35
case 36: evt = 52; keybd_event(VK_SHIFT, 0, 0, 0); break;// 4 $ = 36
case 37: evt = 53; keybd_event(VK_SHIFT, 0, 0, 0); break;// 5 % = 37
case 94: evt = 54; keybd_event(VK_SHIFT, 0, 0, 0); break;// 6 ^ = 94
case 38: evt = 55; keybd_event(VK_SHIFT, 0, 0, 0); break;// 7 & = 38
case 42: evt = 56; keybd_event(VK_SHIFT, 0, 0, 0); break;// 8 * = 42
case 40: evt = 57; keybd_event(VK_SHIFT, 0, 0, 0); break;// 9 ( = 40
case 41: evt = 48; keybd_event(VK_SHIFT, 0, 0, 0); break;// 0 ) = 41
default: break;
}
*/
////handle lowercase letters
if ((mevent > 96) && (mevent < 123))
{
//make sure the SHIFT key is not pressed or you will not be able to display numbers
keybd_event(VK_SHIFT, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
evt = mevent - 32;
}
else if ((mevent > 47) && (mevent < 58))
{
//numbers
//make sure the SHIFT key is not pressed or you will not be able to display numbers
keybd_event(VK_SHIFT, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
evt = mevent;
}
else if ((mevent > 64) && (mevent < 91))
{
////handle uppercase letters
keyCode = Convert.ToByte(evt);
keybd_event(VK_SHIFT, 0x45, KEYEVENTF_EXTENDEDKEY, 0);
evt = mevent;
}
keyCode = Convert.ToByte(evt);
//press
keybd_event(keyCode, 0x45, KEYEVENTF_EXTENDEDKEY, 0);
//release
keybd_event(keyCode, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
//make sure the SHIFT key is not pressed or you will not be able to display numbers
keybd_event(VK_SHIFT, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
|
|
|
|
|
I have two forms, Form1 and Form2. I am trying to pass struct data from Form1 to Form 2 and each time, I get these errors:
C:\WINXP\Profiles\Owner\My Documents\Visual Studio 2005\Projects\Object\Object\Form1.cs(29,25): error CS1502: The best overloaded method match for 'Object.Form2.Form2(Object.Form2.client)' has some invalid arguments
C:\WINXP\Profiles\Owner\My Documents\Visual Studio 2005\Projects\Object\Object\Form1.cs(29,35): error CS1503: Argument '1': cannot convert from 'Object.Form1.client' to 'Object.Form2.client'
My Form1.cs is:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Object
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public struct client
{
public string ClientMatter;
public string ClientName;
}
private void button1_Click(object sender, EventArgs e)
{
client mary;
mary.ClientName = "mary";
Form2 frm = new Form2(mary);
frm.Show();
}
}
}
My Form2 code is:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Object
{
public partial class Form2 : Form
{
public struct client
{
public string ClientMatter;
public string ClientName;
}
public Form2(client mary)
{
InitializeComponent();
label1.Text = mary.ClientName;
}
private void Form2_Load(object sender, EventArgs e)
{
}
}
}
|
|
|
|
|
You have two different client types in different scopes. The two types are:
Object.Form1.client
Object.Form2.client
Basically, you have nested the definition of the struct inside the form class. The client struct definition should be placed outside the class.
Extract one client struct out from the form class and delete the other client struct definition.
|
|
|
|
|
You could add a constructor to Form2 that accepted the struct as a ref parameter...
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
Hi All,
Can anyone send some links on creating well organised/factored reuseable classes. I've been looking through google but haven't found much as of yet.
Thanks,
Jammer
Going where everyone here has gone before!
My Blog
|
|
|
|
|
|
Isn't it just!
Thanks for this ... really good reading.
Jammer
Going where everyone here has gone before!
My Blog
|
|
|
|
|
experance really helps in this, and mark clifton a fellow cp'er has written some good articles on this.
You can only be young once. But you can always be immature.
- Dave Barry
|
|
|
|
|
Im trying to send a class full of variables to a DLL Method and then have that method do some calculations and then send the class back to the client. IS that possible? Im getting an error that the current argument cant be converted.
|
|
|
|
|
Yes this will work just fine, so long as the "class full of variables" is a class that's visible to both sides.
e.g. MyProgram - references MySharedDll
Creates new <code>ClassFullOfVariables</code>
Sends instance over to MyOtherDll
MySharedDll
Contains the type
<code> class ClassFullOfVariables { ... }</code>
MyOtherDll - referencesMySharedDll
Contains a method: <code>DoCalculations(ClassFullOfVariables input)</code>
|
|
|
|
|