|
Thanks Dave, I'll give it a shot and let you know how I make out.
|
|
|
|
|
I suspect you have an earlier version on that machine.
Look in Windows\System32 or Windows\SysWOW64 (for 64-bit systems) and check the version. 6.0.90.43 and up work fine on Windows 7.
You can just copy the newer one over the others (after unregistering of course).
Alternatively you can just put the ocx in with your binary. VB 6 looks first in the folder that the binary is started in, then in Windows\System.
Don't forget that Windows 7 is a bitch to install in. If you're using InstallShield then make sure that the installation requires Administrator privileges.
UAC can block system updates even with elevated privileges, so we often have users disable UAC temporarily during an install. (Would you believe UAC blocks installing a font ?!!)
Also, beware Symantec and McAfee products. Disable them if present.
Murray
|
|
|
|
|
If RadioButton5.Checked = True And RadioButton9.Checked = True Then
Label6.Text = sum + Diabetes.Label3.Text + HDL.Label3.Text + muka1.Label23.Text
Else
Label6.Text = sum + muka1.Label23.Text
End If
* this is my coding that have been highlighted. The problem is it's say label23 is not valid to convert from string to double..actually.i have already declared that label 23 Integer at the muka1. This code is at the muka2, form 2. May i get help here pleasee??
|
|
|
|
|
AFAIK and assuming sum is numeric (probably of type double) rather than string, VB/VB.NET will try and evaluate the + operators as numeric addition, not string concatenation. So either use sum.ToString() or use the & operator for string concatenation.
|
|
|
|
|
I assume "sum" is a double. You are trying to add the .Text property (which is a string) to a double ("sum"). The compiler tries to convert the string to a double, which there is no implicit conversion. You can use double.Parse(muka1.Label23.Text) if you are SURE that Label23 ALWAYS contains a double, otherwise convert it to a double first using the double.TryParse() function.
|
|
|
|
|
OTOH if your intent is numeric addition, then you should explicitly convert the textbox strings to numbers; and beware: an empty string is not a valid number.
|
|
|
|
|
Hi,
This is pankaj vishwakarma a vb.net developer, I am currently working on the printing project.
Here I am creating a custom paper on the printer via code and then trying to print the text on a specified location . It does not
print After trying many time i found that printable area is not changed but it is changing height and width as custom paper still it's printable area remains the same as previous paper
kindly reply
|
|
|
|
|
I'm trying to read the contents of a file into an array, but for some reason the values are showing up in the array as nothing? The contents of the file look like this (the file length is about 5,690 lines long)
AA.CSV
AAAGY.CSV
AABC.CSV
AACB.CSV
This is the section of code I have written to attempt to do this
Dim stocksymbolarrayLong(25000) As String
Dim filecount As Integer
Dim counter As Integer
Dim LongFile As System.IO.StreamReader
LongFile = System.IO.File.OpenText("C:\Users\George Desktop\Documents\Stock System\Stock Programs\Stock Program Data\LongStockTesting.txt")
filecount = 0
Do Until LongFile.Peek = -1
LongFile.ReadLine()
filecount = filecount + 1
Loop
For counter = 0 To (filecount - 1)
stocksymbolarrayLong(counter) = Val(LongFile.ReadLine)
Next
LongFile.Close()
ReDim Preserve stocksymbolarrayLong(filecount - 1)
Array.Sort(stocksymbolarrayLong)
This should be very simple to do and solve, but i've been looking at it for a couple hours and don't know what I'm doing wrong?
Can someone help?
George
|
|
|
|
|
is this VB6 or VB.NET?
how many times can you "read to the end"?
why do you read the file twice? you could extract and store the required data and find out the number of lines in one go (and your problem would suddenly disappear).
if VB.NET, why don't you use a List of Something rather than an array (whose dimension is an implicit limitation to your program)? And are you familiar with File.ReadAllText? File.ReadAllLines?
|
|
|
|
|
Luc, thanks for your prompt reply. Below are my replies to your questions.
I'm using VB.NET
I'm not sure I understand what you mean "read to end"?
I read the file twice. Once to get the length and once to read the data. I'm aware I could do it all at once, but I guess it's just poor form on my part. Not sure how this would make the "problem disappear".
The reason I don't use a list is I'm not familiar with lists and how they work. I am also not familiar with file.readalltext and fileradalllines. I'll look them up.
Please keep in mind I'm not someone who writes a lot of programs and has a lot of experience. I know there are better ways to accomplish what I am looking to do, but I'm curious as to why what I'm doing isn't working?
George
|
|
|
|
|
GeorgieMPorgie wrote: I'm curious as to why what I'm doing isn't working?
What does the computer say when you try to run it? Something about your reader?
GeorgieMPorgie wrote: I'll look them up.
Just curious, did you? The example[^] in the documentation on the method that Luc pointed you to actually shows that it can be done in a single line;
Dim readText() As String = File.ReadAllLines(path)
Bastard Programmer from Hell
|
|
|
|
|
Eddy, I didn't get an error result and no message about my reader. Yes I did look up lists and file.readalllines(). Learned a lot today from some very kind people. I'll probably end up rewriting a few other programs using what I learned.
George
|
|
|
|
|
Cool
Bastard Programmer from Hell
|
|
|
|
|
Dim stocksymbolarrayLong() As String
Dim filecount As Integer
Dim LongFile As System.IO.StreamReader
LongFile = System.IO.File.OpenText("C:\Users\George Desktop\Documents\Stock System\Stock Programs\Stock Program Data\LongStockTesting.txt")
filecount = 0
Do Until LongFile.Peek = -1
LongFile.ReadLine()
ReDim Preserve stocksymbolarrayLong(filecount)
stocksymbolarrayLong(filecount) = LongFile.ReadLine
filecount = filecount + 1
Loop
LongFile.Close()
If Not stocksymbolarrayLong Is Nothing Then
Array.Sort(stocksymbolarrayLong)
End If
I did a little reworking USING your method of getting the values.
There is better one, readALlLines from the IO.File class, but I used ur code.
This should work , but I can't test it.
Good luck!
|
|
|
|
|
Did you send that to the intended person? I wasn't expecting any help, I was only offering some.
|
|
|
|
|
Yes, I am sorry -it looks like I replied under wrong heading. My post is intended for OP, and not you in any way. Your resolution is what I would have done too, btw .Thanks for letting me clear this up.
have a Great Day Luc!
|
|
|
|
|
Well, who I was meaning to refer to regarding readALLLines method-was the poster that offered up the ReadALlLines method of the File class.
-
Still, you offered a great help explaining why OP code was failing.
That was a good response.
|
|
|
|
|
Thanks.
|
|
|
|
|
I would seriously read the documentation on List(Of T). It's FAR more flexible than a normal array.
You can rewrite your snippet to three lines of code (not including any error handling):
Dim stockSymbols As New List(Of String)
stockSymbols.AddRange(File.ReadAllLines("C:\Users\G..."))
stockSymbols.Sort()
|
|
|
|
|
Thanks a lot for the feedback (and education). This is so much easier than what I was doing.
George
|
|
|
|
|
I'm afraid you still haven't figured out why it failed the way you did it. You opened a file, then had a loop reading all its contents (till Peek fails), en then another loop supposed to read all content again. However you never told the file it should restart at the beginning (the again was in your mind, not in your code), so your second loop starts at the end of the file (where it had left off when the first loop ended) and then obviously finds nothing more. To restart a file, either close and open it again, or simply set its Position to zero.
So either do it yourself (as you tried) but do it correctly, or use what is available to tackle the most popular situations, such as File.ReadAllLines(). Quite often, less code also means fewer bugs.
|
|
|
|
|
Thank you for explaining what my error was because (as you mention) I never did understand why it didn't work. I actually rewrote my program using file.readalllines() and used a list instead of an array.
Thanks again for helping out. Not only did I get an answer to my original question, but I actually learned a better way to get my desired result.
George
|
|
|
|
|
Hey I'd uses a streamreader. so store your csv file in a variable and read it in a using statement using streamreader and set your array = reader.split(',') or ('/t') depending on what format your csv file is in.
|
|
|
|
|
Thanks for the feedback.
George
|
|
|
|
|
Hi,
Thanks for taking the time to read my post. I have spent lots of time reading other threads on here and everywhere else I could find and could not find a solution to my issue.
What I am trying to accomplish is to have two way communication between a service and a (single - for now) windows gui interface. I have found some basic examples on the web on how to pass a string to the server and playing around with it I was able to pass a Serializable class to the server and using functions get a class back from the server.
What I don't understand and can't figure out is how to get the server (service) to send an update to a client without the client requesting it, like an event. I found a server/client chat program that this works on but it is too complicated for me to follow and figure out how to do it.
Using the below example I changed the server into a Windows Form Application and then in the CommunicationService class I created a reference to the server form and called a public sub I had defined on it to bring the passed string into it. Although that works it is ugly and I am sure it is not the correct way to do it. How would I make more like a typical even driven system?
Below is an example I found on the net and I started with this to try and figure out how to accomplish my goals. What do I need to change or add to make this work the way I want it to?
Client:
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Ipc
Public Class Form1
Private Sub cmdSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSend.Click
Dim ipcCh As New IpcChannel("myClient")
ChannelServices.RegisterChannel(ipcCh, False)
Dim obj As SharedInterfaces.ICommunicationService = _
DirectCast(Activator.GetObject(GetType(SharedInterfaces.ICommunicationService), _
"ipc://IPChannelName/SreeniRemoteObj"), SharedInterfaces.ICommunicationService)
obj.SaySomething(txtText.Text)
ChannelServices.UnregisterChannel(ipcCh)
End Sub
End Class
Server - CommunicationService Class:
Public Class CommunicationService
Inherits MarshalByRefObject
Implements SharedInterfaces.ICommunicationService
Public Sub SaySomething(ByVal text As String) Implements SharedInterfaces.ICommunicationService.SaySomething
Console.WriteLine("The client said : " & text)
End Sub
End Class
Server - Main:
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Ipc
Module Main
Sub Main()
Dim ipcCh As IpcChannel
ipcCh = New IpcChannel("IPChannelName")
ChannelServices.RegisterChannel(ipcCh, False)
RemotingConfiguration.RegisterWellKnownServiceType( _
GetType(CommunicationService), "SreeniRemoteObj", _
WellKnownObjectMode.Singleton)
Console.WriteLine("Press ENTER to quit")
Console.ReadLine()
End Sub
End Module
SharedInterface:
Public Interface ICommunicationService
Sub SaySomething(ByVal text As String)
End Interface
Thanks for your time
Seamus
VB.Net 2005
|
|
|
|