|
AscB no good either. Thanks.
|
|
|
|
|
The issue of presenting characters in the correct format depends on how they are encoded and what font you use. The first thing you need to identify is exactly what, and what form, is the data that is being read from the chip.
|
|
|
|
|
Thanks for your reply. The code reads data (not text) from eeprom in the instrument. The FTDI driver (which I have no control over) returns each byte read from the USB bus as a string character.
That is why I use Asc(string) to get me the byte value that I need.
The problem, for example:
instead of reading 0 22 129 0 22
in the chinese PC I get 63 63 63 0 0
Thanks again
|
|
|
|
|
That makes no sense, you cannot read 0 as 63 without some fairly bad code. You need to capture each character as it arrives and display it as a numeric value.
|
|
|
|
|
Well, the code could not be simpler. Just one line of code. The rest is done by the FTDI library routine that reads the USB data and passes it as a string. It all works fine in all systems we tested except Win10 running the chinese version.
But thank you for taking the time to comment.
|
|
|
|
|
If you're reading data, net text, why are you using ASC() at all? That gets the ASCII value of a character, not a byte.
|
|
|
|
|
May I ask why you don't read the data as Byte-Array instead of reading/converting them into a string ?
|
|
|
|
|
Yes, the reason is that I am using the FTDI DXXX library to read data from the USB chip. This passes the data as a string.
|
|
|
|
|
You should write something more about what you definately want to do.
In the Moment I don't understand why you do it in that way ...
|
|
|
|
|
Well, it is quite simple and I did explain it before but let me try again. We have an instrument connected to the host PC. The software running on the PC needs to read EEPROM data held in the instrument. It sends a command to the instrument and the instrument responds by the sending the data. The software uses the FTDI DXXX library to read and write to the USB. The data is read byte by byte. The FTDI routine returns the data as a string. The software uses the Asc() function to get the value of each byte. It all works fine except in Win10 running the chinese version.
|
|
|
|
|
Of course ... I have read all you have written before.
The thing what isn't clear for me is : why don't you read the data by the emulated COM-Port from the FTDI-Device ?
I have had the same problem when I wanted to read the data from a RFID-Reader (and I solved it in that way).
|
|
|
|
|
Try using ASCW in stead of just plain ASC. ASC would be more for standard ASCII chars. Asc, AscW Functions[^]
|
|
|
|
|
Just curious why my answer got down voted when it was the first one and contained the information most other answers ?? -16 points not that I really care about points after all of these years here. Just Curious Why.
|
|
|
|
|
ledtech3 wrote: it was the first one
You do realise we can see the dates when the messages were posted, right?
Your answer was posted on 27th October at 3:45. And it's exactly the same suggestion and link as my answer[^], which was posted 25th October at 17:22 - more than a day earlier than yours.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Yeah but when I posted originally there were no other comments or questions showing up at the time. That's the reason I said that. Otherwise I would not have posted anything. I went thru the link from the email notification of the question so not sure if that was the reason or not that nothing else showed up. Either way I give up trying to "Help People" because of so many "Trolls" here.
|
|
|
|
|
There were answers showing up in the forum more than 24 hours before you posted your answer. If you couldn't see them, then you need to report that as a bug:
Bugs and Suggestions[^]
You posted an answer that had already been posted more than a day previously, when the OP had already indicated that the answer did not help. It's hardly "trolling" for someone to down-vote your answer.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Well there are 2 Down votes now but at least I know why now and that's all I was asking.
And I will report the bug.
Thank you for your time.
|
|
|
|
|
In my app I have the ability for users to attach files. These files can be anything such as Word documents, PDFs, images, Excel spreadsheets, etc. Is there a way to give the users the ability to print these files by clicking a single button? I was thinking that when you are in Windows Explorer and right click on a file one of the options is to print the selected file so there must be a way to call that type of functionality from code.
|
|
|
|
|
Assuming it's a desktop application, you can print a file by using Process.Start[^] with the "print" verb.
Dim psi As New ProcessStartInfo
psi.FileName = pathToTheFile
psi.Verb = "print"
Process.Start(psi)
NB: This requires that there is an application registered to print the file. Any file which shows "print" in the Windows Explorer context menu should work.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
This is a report program, in which I have to match filters to get a list of items.
So overall I'm missing some data that I need to find and see what it is.
I have this filter called states, in which the invoice shipping item has to match a state selected
For Each state As String In p.States
gInvoices_raw.AddRange(gInvoices_all.Where(Function(m) m.FSSTATE = state))
Next
In the loop, I need to find out what is left over, what remains, so I thought I would RemoveRange from gInvoices_all
But I don't have the slighest clue how to get the start and stop index of the Range to remove here
Or perhaps there is a better solution here.
gInvoices_all = gInvoices_all.OrderBy(Function(m) m.FSSTATE).ToList()
For Each state As String In p.States
gInvoices_raw.AddRange(gInvoices_all.Where(Function(m) m.FSSTATE = state))
gInvoices_all.RemoveRange(xxxxxxxxxxxxxxxxxxxxxxx)
Next
If it ain't broke don't fix it
|
|
|
|
|
Maybe I should just run this for now while I'm looking for missing sales
For Each state As String In p.States
Dim filteredInvoices As List(Of model_itemDistribution_Invoices) = gInvoices_all.Where(Function(m) m.FSSTATE = state).OrderBy(Function(m) m.FSHIPDATE).ToList()
gInvoices_raw.AddRange(filteredInvoices)
'Remove the Invoices just seleted from gInvoices_all
For Each invoice In filteredInvoices
gInvoices_all.Remove(invoice)
Next
Next
If it ain't broke don't fix it
|
|
|
|
|
Try:
gInvoices_raw.AddRange(gInvoices_all.Where(Function(m) m.FSSTATE = state))
gInvoices_all.RemoveAll(Function(m) m.FSSTATE = state)
List<T>.RemoveAll Method | Microsoft Docs[^]
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
I thought RemoveAll would remove everything, I'll give it a try, Thanks!
If it ain't broke don't fix it
|
|
|
|
|
So I have this list of customer invoices that I need to just group into a list of
Customers
Customers by State,
Customers by City, or Street Address if there are multiple locations in a city
But on a small check, I got a duplicate, 2 customers in Tempe AZ with the same street address.
I did something wrong here but not sure what.
'Group all the Customers together from gInvoices_all
Dim gCustomers As List(Of model_itemDistribution_Invoices) = gInvoices_all.OrderBy(Function(ob) ob.FCUSTNO).GroupBy(Function(v) New With {Key v.FCUSTNO, Key v.FSSTATE, Key v.FSADDR1}).Select(Function(cl) New model_itemDistribution_Invoices() With {
.FCUSTNO = cl.First().FCUSTNO,
.FSSTATE = cl.First().FSSTATE,
.FSADDR1 = cl.First().FSADDR1,
.FCOMPANY = cl.First().FCOMPANY,
.FSALESPN = cl.First().FSALESPN,
.FCONTACT = cl.First().FCONTACT,
.FPHONE = cl.First().FPHONE,
.FSADDR2 = cl.First().FSADDR2,
.FSCITY = cl.First().FSCITY,
.FSZIPCODE = cl.First().FSZIPCODE,
.FSCOUNTRY = cl.First().FSCOUNTRY,
.FCSAMT = 0.0
}).ToList()
If it ain't broke don't fix it
|
|
|
|
|
At least one of the three columns you're grouping by will be different. Check for leading/trailing white-space, and if you're querying an in-memory collection, check the case of the values too.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|