Hex input from string problem
Hi!
Whenever I try to input a hex integer by readLine method
of BufferedReader and parse it I get a NuberFormatException . Please tell me a solution?
Hi...
Have you tried using the static method decode in the Integer class?
I don't know if this is where you're goign with this problem but try this (I assume you read a line, parse it, and then stuff the hex number string you want to decode into a temporary String variable)
String tempNumber = //your BufferedReader readline stuff here...
try {
int hexNumber = Integer.decode (tempNumber);
//do futher processing here
catch (NumberFormatException e) {
System.err.println (e.getMessage ( ))
}
Similar Messages
-
Comparing input from command line to a String token problem
Hi,
I want to compare my input from the command line to a token.
my command line looks like "java myProgram george bush president washington"
The next command could be "java myProgram geoge president washington"
Basically I have a text file which has a name, job and location field. The text file looks as follows
jim, farmer, chicago
paul, builder, texas,
george bush, president, washington
I am using string tokenizer with a "," as my field delimiter.
My lecturer wants me to take the input from the command line so applets are out of the question. However even though there are 3 fields, args.length() could equal 4 because "george bush" is only the name but george is args[0] and bush is args[1]. Is there a way to have a delimiter on the command line instead of a space such a ",". Can anyone see any other way around this?
Thanks1982. The year of.....wait for it.....
Jack And Diane
Tainted Love
Key Largo
Open Arms
Do You Believe In Love
Gloria
Working For the Weekend and of course the GREATEST song of 1982...
drum roll please......
Heat Of The Moment. -
Missing HEX characters from scanned string
Hi everyone,
I have a program which scans a continuous string of serial data which is divided into header, data and checksum. I have replaced the serial part of my code with a simple string input to simulate the data input for testing and as in the diagram below you can see 0A, 0C and 0D are missing and I can't figure out why. Currently it is an exercise to parse out all the data I need for a data aquisition system. If anyone can help me out with this I would greatly appreciate it. This was in a different thread but it has dissapeared into the ether. Here is the picture illustrating the problem.
Thanks again
Stirling
Message Edited by stirlsilver on 04-09-2007 06:17 PM
Attachments:
Serial read v1.2.vi 85 KBYou are doing all this way too complicated. There is absolutely no need to use "scan from string" to simply chop up a string into parts. Use string subset instead (in a loop).
You also have way too much duplicate code. You can operate on arrays directly and use array indicators for the channels. This reduces the complexity of your diagram 10 fold!!!
I don't have your serial hardware, but attached is a small code fragment (LV 8.0) that seems to do about the same thing with your string using 10% of your code. Modify as needed. Let me know if anything is not clear.
LabVIEW Champion . Do more with less code and in less time .
Attachments:
Serial_read_v1.2MOD.vi 24 KB -
Problem in sending XML input as String in BPEL
Hi,
We have a BPEL flow (assign, invoke, assign) which takes an XML input as String.
<RegisterCustomerOnVAS><CustomerID>100</CustomerID><MSISDN>9999999</MSISDN><CustomerName>sanjeev</CustomerName><customerInfo>new user</customerInfo></RegisterCustomerOnVAS>
Assignment is doing fine, but when Invoke calls partner link, the input is getting parsed and only the first text value (eg 100) is getting passed to the partner webservice instead of the entire XML as string.
Can any one please help us in fixing in this problem.
ThanksHi,
You should watch your assign activity (maybe a bad assigment level in copy rule). I think the probem is there.
Cyryl -
Problem with tokenized input from command line
I am trying to take an input from the command line, parse it to tokens and perform whatever operation is needed depending on the name of the token, on a binary tree of stacks for example, if i type 1 2 1 3 printLevelOrder, then the root of the tree should have 3, 2,1 in the stack, the left child should have 1 and the right child should be empty. and then a level order print of the tree should be performed.
however what is happening when i run this code is the numbers are being put into the right stacks of the tree, but any commands such as printLevelOrder or PrintPopRoot are entering the code that is for placing numbers onto the stack instead of executing that command and skipping past this piece of code.
so my question is, why is the if statement if (word =="printLevelOrder") not being executed when thats whats in the word ?
example input and output shown below code fragment.
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line = "";
while (line != "***") {
System.out.print("> prompt ");
line = in.readLine();
StringTokenizer tokenizer = new StringTokenizer(line," ");
String word = new String();
while (tokenizer.hasMoreTokens()) {
word = tokenizer.nextToken();
boolean notCommand = true;
if (word =="printLevelOrder") {
theTree.printLevelOrder();
System.out.println("(word ==printLevelOrder)");
notCommand=false;
if (word == "printPopLevelOrder") {
theTree.printPopLevelOrder();
notCommand=false;
if (word == "printPopInorder") {
theTree.printPopInorder();
notCommand=false;
if (word == "printPopPreorder") {
theTree.printPopPreorder();
notCommand=false;
if (word == "printPopRoot") {
theTree.printPopRoot();
notCommand=false;
if (word == "***") {
notCommand=false;
if (notCommand == true) {
System.out.println("(notCommand == true)");
boolean notPlaced = true;
int v = 1;
while ((notPlaced==true) && (v < theTree.size())) {
if (theTree.element(v).isEmpty()) {
theTree.element(v).push(Integer.valueOf(word));
System.out.println("Inserting"+word);
System.out.println("in empty stack at location: "+v);
notPlaced=false;
if (notPlaced==true) {
if ( Integer.valueOf(word) >= Integer.valueOf( theTree.element(v).top().toString() ) ) {
theTree.element(v).push(Integer.valueOf(word));
System.out.println("Inserting"+word);
System.out.println("in stack at location: "+v);
notPlaced=false;
v++;
}valid inputs: int value, printLevelOrder, printPopLevelOrder, printPopInorder, p
rintPopPreorder, printPopRoot, *** to quit
prompt 1 3 2 4 2 printLevelOrder(notCommand == true)
Inserting1
in empty stack at location: 1
(notCommand == true)
Inserting3
in stack at location: 1
(notCommand == true)
Inserting2
in empty stack at location: 2
(notCommand == true)
Inserting4
in stack at location: 1
(notCommand == true)
Inserting2
in stack at location: 2
(notCommand == true)
Exception in thread "main" java.lang.NumberFormatException: For input string: "printLevelOrder"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.valueOf(Integer.java:553)
at TreeStack.main(TreeStack.java:73)
Press any key to continue . . .lol aww, shame that you forgot to do that. i had 10 / 10 for mine, and seing as the deadline is now well and trully over,
here is the entire source for anybody who was following the discussion or whatever and wanted to experiment.
additional files needed >
http://users.cs.cf.ac.uk/Paul.Rosin/CM0212/Stack.java
http://users.cs.cf.ac.uk/Paul.Rosin/CM0212/ArrayStack.java
http://users.cs.cf.ac.uk/Paul.Rosin/CM0212/StackEmptyException.java
http://users.cs.cf.ac.uk/Paul.Rosin/CM0212/StackFullException.java
/*TreeStack.java - reads command line input of values and assigns them to stacks in a binary tree and performs
operations on the ADT. valid inputs: <int>, printLevelOrder, printPopLevelOrder,
printPopInorder, printPopPreOrder, printPopRoot. Terminates on invalid input.
Written by George St. Clair.
S/N:0208456 22/11/2005
import java.util.Vector;
import java.io.*;
import java.util.StringTokenizer;
public class TreeStack {
private final int TREE_CAPACITY = 7 + 1;
private final int STACK_CAPACITY = 10;
Vector tree = new Vector(TREE_CAPACITY) ;
//collect input from command line, add values to stacks at nodes of the teee
//and perform required operations on the treestack
public static void main (String [] args) {
//create a tree of stacks
TreeStack theTree = new TreeStack ();
try {
//collect standard input
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line = "";
while (line != null) {
System.out.print("");
line = in.readLine();
//tokenise input
StringTokenizer tokenizer = new StringTokenizer(line," ");
String word = new String();
while (tokenizer.hasMoreTokens()) {
//assign word to the token
word = tokenizer.nextToken();
boolean notCommand = true;
//perform operation on treestack depending on what word is
if (word.equals("printLevelOrder")) {
System.out.println("printLevelOrder");
theTree.printLevelOrder();
notCommand=false;
if (word.equals("printPopLevelOrder")) {
System.out.println("printPopLevelOrder");
theTree.printPopLevelOrder();
notCommand=false;
if (word.equals("printPopInorder")) {
System.out.println("printPopInorder");
theTree.printPopInorder();
notCommand=false;
if (word.equals("printPopPreorder")) {
System.out.println("printPopPreorder");
theTree.printPopPreorder();
notCommand=false;
if (word.equals("printPopRoot")) {
System.out.println("printPopRoot");
theTree.printPopRoot();
notCommand=false;
//if word was not a command it must be a number
if (notCommand == true) {
boolean notPlaced = true;
int v = 1;
//starting at the root, find suitable place for number
while ((notPlaced==true) && (v < theTree.size())) {
//if the stack at v is empty, number goes here
if (theTree.element(v).isEmpty()) {
theTree.element(v).push(Integer.valueOf(word));
System.out.println("inserting: "+word);
System.out.println("in empty stack at location: "+(v-1));
notPlaced=false;
//if the stack is not empty
if (notPlaced==true) {
//if the value on the top of the stack is smaller than number, number goes onto the stack
if ( Integer.valueOf(word) > Integer.valueOf( theTree.element(v).top().toString() ) ) {
theTree.element(v).push(Integer.valueOf(word));
System.out.println("inserting: "+word);
System.out.println("in stack at location: "+(v-1));
notPlaced=false;
//if that node was no good, check the next one for suitability
v++;
catch (Exception e) {
//occurs when user inputs something that is neither a command, or a number, or upon EOF, or stack is full
public TreeStack () {
//create the TreeStack ADT by adding stacks in the vector, note vector 0 is instantiated but not used.
for (int i = 1;i<=TREE_CAPACITY;i++)
tree.add(new ArrayStack(STACK_CAPACITY));
public int size() {
//return the size of the tree +1 (as 0 is not used)
return tree.size();
public ArrayStack element (int v) {
//return the ArrayStack at v
return (ArrayStack)tree.get(v);
public int leftChild (int v ) {
//return left child of v
return v*2;
public int rightChild (int v ) {
//return the right child of v
return v*2+1;
public boolean children (int v ) {
//search for children of v and return true if one exists
for (int i =v;i<size();i++) {
if (i/2==v ) {
//left child found at i
return true;
if ((i-1)/2==v ) {
//right child found at i
return true;
//no children found
return false;
public boolean isInternal (int v ) {
//test whether node v is internal (has children)
if (children (v)== true) {
//has children
return true;
return false;
//print the top value in each stack encountered on a level-order traversal of tree
public void printLevelOrder() {
//for every node of tree v
for (int v = 1;v<size();v++) {
if (!element(v).isEmpty() ) {
//print the top value in stack v
System.out.println(" "+element(v).top());
else {
//stack at v is empty
System.out.println(" -");
//pop off and print the top value in each stack encountered on a level-order traversal of tree
public void printPopLevelOrder () {
//pop off and print the top value in stack v
for (int v = 1;v<size();v++) {
//for each node of tree v
if (!element(v).isEmpty() ) {
//if v isnt empty print the top value in stack v
System.out.println(" "+element(v).top());
//pop the top value in the stack at v
element(v).pop();
else {
//stack at v is empty
System.out.println(" -");
//pop off and print the top value in each stack encountered on an in-order traversal of tree
public void printPopInorder () {
printPopInorder (1);
public void printPopInorder (int v) {
boolean isInternal = false;
if (isInternal (v)) {
//use a boolean for isInternal to save on running the method twice
isInternal = true;
//recursively search left subtree
printPopInorder (leftChild(v));
//pop off and print the top value at v
if (element(v).isEmpty() ) {
//stack at v is empty
System.out.println(" -");
else {
//if v isnt empty print the top value in stack v then pop
System.out.println(" "+element(v).top());
element(v).pop();
if (isInternal ) {
//recursively search right subtree
printPopInorder (rightChild(v));
//pop off and print the top value in each stack encountered on an pre-order traversal of tree
public void printPopPreorder() {
printPopPreorder(1);
public void printPopPreorder(int v) {
//pop off and print the top value at v
if (!element(v).isEmpty() ) {
//if v isnt empty print the top value in stack v then pop
System.out.println(" "+element(v).top());
element(v).pop();
else {
//stack at v is empty
System.out.println(" -");
if (isInternal (v)) {
//recursively search left and right subtrees
printPopPreorder (leftChild(v));
printPopPreorder (rightChild(v));
//pop off and print all values from the stack at the root
public void printPopRoot (){
//while the root stack has values left
while (!element(1).isEmpty()) {
//print, then pop
System.out.println(" "+element(1).top());
element(1).pop();
} -
I have a MBP running Yosemite. My partner has a MBAir running OSX 10.8.5 (M-Lion?)
He needs to use some medieval characters in his writing as a grad student in ENglish.
On both machines, we installed the Unicde Hex Input source and selected it.
On my machine, I can use the OPTION-KEY + 4-digit-hex-code to produce the characters as desired.
On his machine, with the OPTION-KEY held down, as you type each digit of the hex code, you get a different character, instead of one character after typing the 4-digit code.
Any suggestions?
Thanks,
DaveThanks, Tom -- I'll check it again as soon as I have access to the MBAir, but I'm pretty sure I checked that the U+ input source was selected.
Also, regarding character viewer, even on my own machine (where U+ input works fine) I don't see any of the medieval charcaters in the character viewer, no matter which font (?) I pick from the left-hand list.
For instance, here's a medieval character, produced through the OPTION+ method: ꝑ (blown up to 18 pts to make it easier to see). But I can't find it using the character viewer in Latin or character-like symbols. I think I may not understand how to use the character viewer correctly(?) What is the relationship between the list of symbol-sets (if that's the right word) in the character viewer and the font that's selected in the editor I'm using?
Thanks again,
- dave -
Scan from String (arg1) in TKTDS1k2K, Input parameter invalid
After calibration, i am getting a error about Command Requires GPIB controller to be controller in charge, and Scan from String (arg 1) in TKTDs1K2K scalewaveformarray.vi>scope_vppmeaurement.vi
LABVIEW: An input parameter is invalid.
NI-488: Commands Requires GPIB Controller to be in charge .
This program was working before 3rd party calibrated. Failing on first scope measurement. Passes Scope Setup.
Thanks from newbie scheduled a May Class.
Greg Shepherd
RUNNING tEST STAND & lABVIEW 8
GregOne additional note. I have not had to use Regular Expressions very much, so I'm somewhat of a novice. My FIRST attempt to match either the Verbose or Abbreviated commands from the DSO was as follows:
:WFMP.*:XZE.* $
In words, what I’m trying to say is, “Match any instance of “:WFMP”, followed by any number of any character, followed by “:XZE” followed by any number of any character, and ending with a Space character.” It sure seemed like that should work...but it did not within the VI. That was when I tried other options and found the longer, "A or B" type of match would work, as described in my previous post.
This morning, a buddy sent me links to a couple of websites where you can experiment with Regular Expressions and see if your input is getting matched correctly. By using one of those tools, it appears that my initial attempt IS VALID, but yet, it didn't work within LabVIEW (8.6 for me). I have read some other posts RE: "Bugs" within the way LabVIEW works with Regular Expressions, so maybe this is something similar. But at least I'm up and running by using the long-way. -
Reading Hex data- how to typecast from string
Hi,
I am reading a file having hex data ( say 100 lines).When i read it i think it is being read as a string.
How can i typecast or convert it to int .
I am using dis.readLine() to read from file and assigning it to a variable(int).
Thanks.
Edited by: Motorcycle on Jun 10, 2009 3:16 PMSorry for that..:)
ok a few lines of the file are as folloes
0x004D1202
0x0002E1E5
0x004C1202
0x0002E1EB
0x004E1202
I tried reading it as data [indr][indc].tag = ( int ) dis.readLine() ;
It said " cannot convert from String to int.
data is a structure having int variables.
Thanks. -
Follow Up to Scanner Input from File
Alright, I have another problem. My code is this:
for (int j = 0; j < username.length; j++) {
String line = input.nextLine(); // Create a temporary String that will store each line
// Check if the temporary line isn't empty
if (line.length() > 1) {
numAccounts++;
username[j] = line.substring(10);
password[j] = input.nextLine().substring(10);
System.out.println(username[j]);
} else { // If the temporary line is empty, go back on the loop to prevent empty array entries
j--; }
}It runs through once, and then stops. Here are the declarations:
static int numAccounts = 1;
static String[] username = new String[numAccounts];
static String[] password = new String[numAccounts];
static Scanner input = new Scanner(new BufferedReader(new FileReader("account.txt")));Which was done outside of the main method.
Why does the loop iterate only once?Woah, don't need to get all heated up about something I'm doing wrong. I'm just trying to figure this out. Sorry if I'm getting on your nerves.
So anyways, I did the ArrayList method with your suggestion of making it an ArrayList of Objects. This is what I have so far:
// Declare the ArrayList that will store all the Account Objects retrieved from the database
static ArrayList<Account> accounts = new ArrayList<Account>();
while (input.hasNextLine()) {
String line = input.nextLine(); // Create a temporary String that will store each line
// Check if the temporary line isn't empty
if (line.length() > 0) {
//System.out.println(line);
String currentName = line.substring(10);
String currentPass = input.nextLine().substring(10);
Account current = new Account(currentName, currentPass);
accounts.add(current);
}Yes, I stuck with using the line.length() > 0, because trying to use line != null doesn't work properly for me. Not entirely sure why. Just throws IndexOutOfBoundsException when it's called.
And my Account Object class is as so:
class Account {
static String username, password;
Account(String username, String password) {
this.username = username;
this.password = password; }
}I tried to print out the username and passwords to the indexes of 0, 1, and 2, and they're all the same.
System.out.println(accounts.get(0).username);
System.out.println(accounts.get(0).password);
System.out.println(accounts.get(1).username);
System.out.println(accounts.get(1).password);
System.out.println(accounts.get(2).username);
System.out.println(accounts.get(2).password);What is also interesting, is that it only fetched (or copied) the last two lines in the text document. It ignores all the entries before that.
Do you know what I did wrong? I think I did a logic error in there somewhere. -
Getting input from textbox as "console"
Hi all. I am learning C# and have a Windows forms project that I am working on to learn various techniques. Basically it has a text box that I use to mimic a console. The user enters a command followed by the Enter key and the program reads that in and interprets
it. I also have some rudimentary "batch" commands, such as IF/THEN, INPUT and PRINT.
The application has two main components: The form and a class. The form takes care of interpreting the commands that the user enters and the class implements the three batch commands (more to follow in the near future). The issue that I am having is that
sometimes (maybe 2%) the INPUT functionality does not work. When I enter a string and press Enter an empty string is returned. I have tried to debug this as much as I can, but it is difficult since this problem only happens once in a while.
I have extracted the INPUT functionality and duplicated it in a simple app which I present here. The test app contains one button called btnConRead and a multi line text box called txtConsole. Clicking the button "forces" the app into "run"
mode where the batch commands are interpreted. For this example I run the code that runs when an INPUT command is being processed. The app prompts with "OK" and waits for the user to type something in. When the user presses the Enter key the entered
string is echoed on the console. The form module contains this code:
string sKBBuf = ""; //App wide KB buffer when form Key preview is enabled.
bool bEnter;
private delegate void DisplayMsgDelegate(string sMsg);
private void cEventPrint(object sender, PrintDataEventArgs e)
Display(txtConsole, e.sPrintLine);
private void cEventRead(object sender, ReadDataEventArgs e)
//Event that reads text from the console and returns it.
//This event requires input from the user. It traps the program here until the user
//presses Enter.
//Clear the KB buffer.
sKBBuf = "";
//Loop incessantly until user presses Enter key or Stop key (s).
do
//Braindead.
} while (!bEnter);
if (bEnter)
//User pressed the Enter key, return the KB buffer.
e.sReadLine = sKBBuf;
//Empty buffer.
sKBBuf = "";
//Reset Enter key flag.
bEnter = false;
//Push CRLF to console.
Display(txtConsole, Environment.NewLine);
private void DisplayMsg(string sMsg)
txtConsole.AppendText(sMsg);
private void Display(TextBox txtOutput, string sMsg, bool bToCon = true)
//Check output to console flag.
if (bToCon)
if (txtOutput.InvokeRequired)
txtOutput.Invoke(new DisplayMsgDelegate(DisplayMsg), sMsg);
else
txtOutput.AppendText(sMsg);
private void GetConInput()
clsExample cEx = new clsExample();
cEx.ReadData += cEventRead;
cEx.PrintData += cEventPrint;
System.Threading.Thread runThread = new System.Threading.Thread(() =>
cEx.Process();
this.KeyPreview = false;
this.KeyPreview = true;
runThread.Start();
private void btnReadCon_Click(object sender, EventArgs e)
//Prep stuff
sKBBuf = "";
txtConsole.Focus();
Display(txtConsole, "OK" + Environment.NewLine);
//Read console textbox
GetConInput();
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
bEnter = e.KeyChar == 13;
//Save to buffer. At this time I am not distinguishing from letter or digits.
//But I do need to check for a BS.
if (e.KeyChar == 8)
//Yeah, BS, remove the last char, if any.
if (sKBBuf.Length > 0)
sKBBuf = sKBBuf.Substring(0, sKBBuf.Length - 1);
else
sKBBuf += e.KeyChar;
The class is called clsExample and contains the following code:
//Event raised when data needs to be printed to console.
public event EventHandler<PrintDataEventArgs> PrintData;
//Event raised when data needs to be read from console.
public event EventHandler<ReadDataEventArgs> ReadData;
protected virtual void OnReadData(ReadDataEventArgs e)
EventHandler<ReadDataEventArgs> handler = ReadData;
if (handler != null)
handler(this, e);
protected virtual void OnPrintData(PrintDataEventArgs e)
EventHandler<PrintDataEventArgs> handler = PrintData;
if (handler != null)
handler(this, e);
public void Process()
ReadDataEventArgs argsRead = new ReadDataEventArgs();
PrintDataEventArgs args = new PrintDataEventArgs();
string sMsg = "";
//Get input from user.
OnReadData(argsRead);
if (argsRead.sReadLine.Length > 0)
//I have something
sMsg = argsRead.sReadLine;
else
//No data
sMsg = "*";
args.sPrintLine = sMsg + Environment.NewLine;
OnPrintData(args);
Plus two more support classes for the Print and Read events:
public class PrintDataEventArgs : EventArgs
public string sPrintLine { get; set; }
public class ReadDataEventArgs : EventArgs
public string sReadLine { get; set; }
All the above was necessary so that the Process procedure running in a different thread could interact with the UI elements in the main form. The above mostly works, but I wonder if I am doing it the right way. I don't particularly like the use of
global flags, such as bEnter or having empty loops to just "kill" time, such as the one found in the cEventRead procedure.
In the cEventRead procedure I had the if() block immediately following the empty loop inside
the loop and moved it out of there to see if this made any difference, but apparently it did not. Can anyone provide any feedback or suggestions of what I could change to make it work 100% of the time? I appreciate your time and effort. Thank you, Saga
You can't take the sky from meHi all. I am learning C# and have a Windows forms project that I am working on to learn various techniques. Basically it has a text box that I use to mimic a console. The user enters a command followed by the Enter key and the program reads that in and interprets
it. I also have some rudimentary "batch" commands, such as IF/THEN, INPUT and PRINT.
//Loop incessantly until user presses Enter key or Stop key (s).
do
//Braindead.
} while (!bEnter);
Hi Saga,
Please don't use such kind of loop in your code, if you want to monitor the user input, just use the KeyPress event provided by the TextBox control.
Control.KeyPress
Event
If you just want to execute some standard commands, I recommend that you use
Process to start cmd.exe to execute the command, for example:
void ExecuteCommand(string command)
int exitCode;
ProcessStartInfo processInfo;
Process process;
processInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
processInfo.CreateNoWindow = true;
processInfo.UseShellExecute = false;
// *** Redirect the output ***
processInfo.RedirectStandardError = true;
processInfo.RedirectStandardOutput = true;
process = Process.Start(processInfo);
process.WaitForExit();
// *** Read the streams ***
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
exitCode = process.ExitCode;
Console.WriteLine("output>>" + (String.IsNullOrEmpty(output) ? "(none)" : output));
Console.WriteLine("error>>" + (String.IsNullOrEmpty(error) ? "(none)" : error));
Console.WriteLine("ExitCode: " + exitCode.ToString(), "ExecuteCommand");
process.Close();
If it's powershell script, you can also use the existing library to execute it, check this blogpost:
Executing PowerShell scripts from C#
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
How to Get input from User and Display it's Value
Hi ,
I need to get 2 inputs from user and to display it's Mutilple Value.
The Below Code is working fine to get 2 Input's from user,but it display a Junk value as a Result .How to
overcome this Problem. I need to display it's Mutilple(a*b) value of "a " and " b".
import java.io.*;
class Mul{
static int a=0;
static int b=0;
static int Count=0;
public static void main(String args[])throws IOException{
BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
do{
a=(char)br.read();
Count++;
b=(char)br.read();
if(Count==2)
System.out.println("The Multiplied Value is "+a*b);
}while(Count<2);
}Changed to Integer but still the problem persists.
import java.io.*;
class Mul{
static int a=0;
static int b=0;
static int Count=0;
public static void main(String args[])throws IOException{
BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
do{
a=(int)br.read();
Count++;
b=(int)br.read();
if(Count==2)
System.out.println("The Multiplied Value is "+a*b);
}while(Count<2);
} -
How to Get Input From User and Display Result
Hi ,
I need to get 2 inputs from user and to display it's Mutilple Value.
The Below Code is working fine to get 2 Input's from user,but it display a Junk value as a Result .How to
overcome this Problem. I need to display it's Mutilple(a*b) value of "a " and " b".
import java.io.*;
class Mul{
static int a=0;
static int b=0;
static int Count=0;
public static void main(String args[])throws IOException{
BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
do{
a=(char)br.read();
Count++;
b=(char)br.read();
if(Count==2)
System.out.println("The Multiplied Value is "+a*b);
}while(Count<2);
}Hi ,
I need to get 2 inputs from user and to display it's
Mutilple Value.
The Below Code is working fine to get 2 Input's from
user,but it display a Junk value as a Result .How
to
overcome this Problem. I need to display it's
Mutilple(a*b) value of "a " and " b".
import java.io.*;
class Mul{
static int a=0;
static int b=0;
static int Count=0;
public static void main(String args[])throws
IOException{
BufferedReader br =new BufferedReader(new
InputStreamReader(System.in));
do{
a=(char)br.read();This line will get you the ascii-value of the typed character.
This line will not get you the value typed in.
Try looking for Integer.parseInt()...
Count++;
b=(char)br.read();
if(Count==2)
System.out.println("The Multiplied Value is "+a*b);
}while(Count<2); -
Hi Everybody,
I'm trying to use LabView to
process some data. The data, although it was collected via labview,
has been written out to csv file format. I have been able to
successfully open the file and use the search split string function to
remove the "header" from the data stream. Now I'm trying to parse the
header to extract some pieces of the info that is there. I'm trying to
do this with the Scan from String VI.
So
far I've been able to retrieve the Specimen ID from the first line of
the header by setting the format string input of Scan from String as
"Specimen ID ,%s", which works just fine. Problem is, when I
adjust
the format string to include the next piece of data I want, I
inevitably get an Error 85, which is a failed scan. In fact, I
get an err85 every time I try to extract something from after the
second line. I've attached a VI in which I cut and pasted an
example header string in as a string constant and an example of how I'm
trying to extract the values. I've tried playing around with
spaces and different formats, but get the err85 no matter what I do
(unless I extract the first line). I have a hunch that it has
something to do with the EOL marker, but no idea how to work around it.
A search of posts here show that a lot of people have issues with the
scan from string vi, but nobody I could find had this exact
problem. I've also considered using the spreadsheet spring to
array function, but because I have a mix of commas and EOLs it doesn't
seem to work either. HELP! I really don't want to have to write this
over in VBA/Excel.
Thanks,
Turk
Message Edited by YoungTurk on 07-29-2005 10:36 AM
Attachments:
Scan.vi 12 KBYou should probably parse it line by line (See attached, LabVIEW 7.1)..
The attached example shows one possibility to get all the Items and values out. Not all values are strictly numeric so you would need to adapt the code a little bit. (This is just a very rough 1 minute draft).
You might want to cosider to extract all values into a cluster for further processing, Have a look at the example posted in this thread . It can be easily adapted to read the values in the proper format (DBL, I32, Date, String, etc.) depending on the item name.
Good luck!
LabVIEW Champion . Do more with less code and in less time .
Attachments:
ScanMOD.vi 30 KB -
Unflatten from string takes long time to execute in x64
Hi All,
I am running into an issue where "Unflatten from String" is taking enormous amout of memory n time in LV 2012 SP1 x64 to execute. I pass in a NOT flattened string to this function and it consumes ~5 Gigs of memory and takes more than 10 minutes to execute it. On x86, it executes almost instantly.
It only happens if the input is not a flattened string.
Is this a known bug?
I have attached the vi here for you to see the problem. If you run it on x64, it might take more than 10 mins to execute and your system will be in a hung state.
Ritesh
Attachments:
Flat String to Data bug.vi 9 KBLVCoder wrote:
With "x64" I meant LV x64. It executes instantly on LV x86 running on Win 64 bit but on LV x64 it takes like eternity.
I know it cannot unflatten it and I want it to return an error. My actual code can receive a flattened or NOT flattened string and I have a case structure which handles different strings differently.
Be careful with that terminology, it only applies to the Windows Operating System with respect to 32-bit and 64-bit processors. There is no such thing as LabVIEW x64, or LabVIEW x86. The property terminology is LabVIEW 32-bit (the most common one, most people use, even on 64-bit OS's since it is the most fully supported), and LabVIEW 64-bit (not commonly used, doesn't have full support of all add-on modules and toolkits, and is mainly only used by people who need LabVIEW to analyze very large datasets.) -
Extracting Images from EPS - Problem with the Output
Hello,
I got a big problem extracting images from an EPS, which has been made in InDesign. The image does not appear correct.
Source code:
%ALDImageFileName: Speicher:image.jpg
%ALDImageDimensions: 30 30
%ALDImageCropRect: 0 0 30 30
%ALDImageCropFixed: 0 0 30 30
%ALDImagePosition: 203.8677 344.8913 203.8677 359.2913 218.2677 359.2913 218.2677 344.8913
%ALDImageType: 4 8
%%BeginObject: image
[14.4 0 0 14.4 203.868 344.891 ]ct
snap_to_device
Adobe_AGM_Image/AGMIMG_fl cf /ASCII85Decode fl /RunLengthDecode filter ddf
<<
/T 1
/W 30
/H 30
/M[30 0 0 -30 0 30 ]
/BC 8
/D[0 1 0 1 0 1 0 1 ]
/DS [
[AGMIMG_fl 30 string /rs cvx /pop cvx] cvx
[AGMIMG_fl 30 string /rs cvx /pop cvx] cvx
[AGMIMG_fl 30 string /rs cvx /pop cvx] cvx
[AGMIMG_fl 30 string /rs cvx /pop cvx] cvx
/O 3
>>
%%BeginBinary: 1
img
p&G-p!<E*"!<<3"!!!&i!!30$!Vl`q!V$-m!WW3&!r`0#!Wh]h!!20]!WW3$qZ$^!!!!&f!!30$!WE'!
!WE'$!<<*#nc/[l!W<!#!WW3%h>dNVnGiXl!<<-)!!*'"!<<2f!<*$!!<3)a!!!&t!!*-%kl:\ar;Zm"
!!2He#6G2G(D[>Z!<*#e!!WKUEK,/l!r`0"!V$.!!Wi?'-t[mD-NjDN!!2Zk!!3#u"T\]4$OR%8!!!&h
!!<6)*\I@D!\,8pq>g3h%KQP0';ta-rr2ho&-2b3mf3Y*Q/q,jk2D[9"76'h!=o#B!Y,22n,Nn!!!=Q!
0.ee,0/"XS!VHHl!!E<'!"[l]rrUsd!Ug!r&'a/!k3(mej38#8mJm8&'`/UF'`J.(!"8l.+"o,p/hSe-
/M8.8!!<6%!i#Yn!<2rs!2Ao^$NZFPk2tpjkND!jP3r;O%29TU'`o-b%e'H-!=:8,0/"h-.kN>(.gkeH
"T^(Js8W&srrE$$rr;gE!V-4"""*$ljlY^djQYmmi$\'q!W`9(p([Q1nc/dn!#@(:r[nC..kE8)/emgU
!<IHErs8W(rr<#trr76B!:p1!CZadBk2kmhj65^iD"%E-$5O?k'`&OE$M"0,!<<uh0.ee0/h\e,/h.k2
!!*+arVm-$s8W)us8J2U!;Z[(L?.U[kN:sflf@0hK^f$D!=T\>'a5?f'c%2YnGit6/1iM*/1iA*.kWFi
nc/dn!I+SBqYpWrrcdo5!<N60C$4[@ki_*hl0.?lD".K0!=9MV'c%S_'`f!Vnc01&!!t50/M8P+/h8J)
.gH+F!!+PDrVllsrVlrp.KT,@#QauQip#Ifk3*$4ki:gb-3Nc<$j.4Z'GV>s'bqJt('F(,%06GL/hJ_.
.k<;..j"f]!!32!rql]tr;WMmmf3c`k2tsgk2tmikEZ,Kn,NJ!'`/UJ'G_,X!V-6i!=L8*/2&S./M&=P
!!2Ti"9AV]s8N#t"o\JY&c_t$!"-g0j6,RdkNBr!!r2ii!!!]1'a,9f'*84(!"Ar/""YuT/M8Y)!WW3$
nc0%!!!!Z$s8N#ts76`i!"T,3!!3\bl0.?qjkC7H!!;`lrW!!#!>PMJ!u;Ub!Ug$f!=JlU/M/S*/ggZ#
!!2Ng$3K)as8N&tjT#8]m/R@3k2b[ck03)j!>?4H'`\p6!!**(r[e6p.kWIZmJm:h!#kk:#.sp7ru_:B
mJmV6jQ>U%kN:kH!!!)h!!!'!'`\gE'`eC:mf3^r!=pb8/ds9_.h;[J!!u[*s8GIerr6%#m/RGck3(kk
kNM&%!Up'o!<<*)'bhDfrY5G=!Vufj!"K#0!#mOB.0(kM0,afj!V$-u!<A8^s6B[Es8S8_!U]poKBMCG
!7'`iKECN@#RhF_'*&[\'b'X5r;[9-!$a!F*W[<7.jP)q!V-4#!<<,As8T>(W;lnB!!!&g!"63skFhmD
jlEuS!!2Ng#S7^d%KHtR'bTm7!s/H(/-mj['`\n!/1Ukk!"985s8@'?Du]k7%KHP#!"8l0$KC71C'%l,
jl$a?!!<6%!!3'6!X\o6rY5J8!!2Qh#Ri::0*_I`/1U`S%.4)q5Q:Zg2ukf6s8P=a!V$-t!]]?)jY?ff
kN:qhmJmFp()7Pf!!N99!!Vcj$l1NL.KKPM/1iIi!!3'!o`,F%!dakFpBL[$pAb/A!Up's!H@5cf`qK\
hWF!BmJmV%'GV;_!!*`J'FFm3!!WH(!?WpE,Q7ZH+tP;f!!2foq>^W-s8Tn6!!L"8s0r.!!">[bkcXsf
!3>;FU]CPd!!<]G'bL?E!tZ.^&+9K$!\#`P)?'U>'eM$g!!2Zk!W`9$$g.KhLB.ATL&_2?"7Q9n!RU)n
I/X*KGN@l9"Rc<t',;8j!!!$,'bhAP!!WQ+!"US5%fQG1%PKFQn,NUm!*fL'9)\en8,rO]!V-4"!rrBu
jQ/].!WYOLl&b?6"9AcD'aFX;"9oSU%0>nt$NV(q!rr<%"YC_q"7Z@"!<<+Eq@Wc/!#,C9"9&;k!!E?)
D;u0+!!<qtS-&0["T\T'$5EXA!!33:%da5t!<<]/!!3u<!V$-o!<<*#!FZ$-!!A;d!!2ipq#CKu!<?7$
!!WK)KEM8T"RZ6i$2so,!<<Q0li77k!!30$!<</h!!!'!!!E<'!!!&c!"8o/!!*'#"98E'!WW;h!!!'!
!!NB'!<<*#n,N[o!<<*#!!!'!!!!&f!!E<&!!*-"!!!'!!!**%o)K!s!!*-$!<<*#!!<-"!Wi?&l2Ueb
rVup!q#Gp~>
%%EndBinary
%%EndObject
Orginal image Size 553,9 KB
After decoding the size is only 1,8 KB
First try.
public class ASCII85Decode {
private ByteBuffer buf;
* initialize the decoder with byte buffer in ASCII85 format
private ASCII85Decode(ByteBuffer buf) {
this.buf = buf;
* get the next character from the input.
* @return the next character, or -1 if at end of stream
private int nextChar() {
// skip whitespace
// returns next character, or -1 if end of stream
while (buf.remaining() > 0) {
char c = (char) buf.get();
if (!isWhiteSpace(c)) {
return c;
// EOF reached
return -1;
public static boolean isWhiteSpace(int c) {
return (c == ' ' || c == '\t' || c == '\r' || c == '\n'
|| c == 0 || c == 12);
// 0=nul, 12=ff
* decode the next five ASCII85 characters into up to four decoded
* bytes. Return false when finished, or true otherwise.
* @param baos the ByteArrayOutputStream to write output to, set to the
* correct position
* @return false when finished, or true otherwise.
private boolean decode5(ByteArrayOutputStream baos)
throws PDFParseException {
// stream ends in ~>
int[] five = new int[5];
int i;
for (i = 0; i < 5; i++) {
five[i] = nextChar();
if (five[i] == '~') {
if (nextChar() == '>') {
break;
} else {
throw new PDFParseException(
"Bad character in ASCII85Decode: not ~>");
} else if (five[i] >= '!' && five[i] <= 'u') {
five[i] -= '!';
} else if (five[i] == 'z') {
if (i == 0) {
five[i] = 0;
i = 4;
} else {
throw new PDFParseException(
"Inappropriate 'z' in ASCII85Decode");
} else {
throw new PDFParseException(
"Bad character in ASCII85Decode: " + five[i]
+ " (" + (char) five[i] + ")");
if (i > 0) {
i -= 1;
int value = five[0] * 85 * 85 * 85 * 85 + five[1] * 85 * 85
* 85 + five[2] * 85 * 85 + five[3] * 85 + five[4];
for (int j = 0; j < i; j++) {
int shift = 8 * (3 - j);
baos.write((byte) ((value >> shift) & 0xff));
return (i == 4);
* decode the bytes
* @return the decoded bytes
private ByteBuffer decode() throws PDFParseException {
// start from the beginning of the data
buf.rewind();
// allocate the output buffer
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// decode the bytes
while (decode5(baos)) {
return ByteBuffer.wrap(baos.toByteArray());
* decode an array of bytes in ASCII85 format.
* <p>
* In ASCII85 format, every 5 characters represents 4 decoded
* bytes in base 85. The entire stream can contain whitespace,
* and ends in the characters '~>'.
* @param buf the encoded ASCII85 characters in a byte buffer
* @param params parameters to the decoder (ignored)
* @return the decoded bytes
public static ByteBuffer decode(ByteBuffer buf)
throws PDFParseException {
ASCII85Decode me = new ASCII85Decode(buf);
return me.decode();
2. Try
public class Ascii85Decode {
private final FileOutputStream fos;
private Ascii85Decode() throws FileNotFoundException {
File f = new File("/home/markus/1/test/bild.jpg");
fos = new FileOutputStream(f);
@Override
protected void finalize() throws Throwable {
fos.close();
super.finalize();
public static byte[] decode(byte[] in) throws FileNotFoundException, IOException {
Ascii85Decode ascii85Decode = new Ascii85Decode();
ascii85Decode.setData(in);
ascii85Decode.decode85();
return null;
static long pow85[] = {85 * 85 * 85 * 85, 85 * 85 * 85, 85 * 85, 85, 1};
private byte[] in;
private void setData(byte[] in) {
this.in = in;
void wput(long tuple, int bytes) throws IOException {
switch (bytes) {
case 4:
putchar((int) (tuple >> 24));
putchar((int) (tuple >> 16));
putchar((int) (tuple >> 8));
putchar((int) tuple);
break;
case 3:
putchar((int) (tuple >> 24));
putchar((int) (tuple >> 16));
putchar((int) (tuple >> 8));
break;
case 2:
putchar((int) (tuple >> 24));
putchar((int) (tuple >> 16));
break;
case 1:
putchar((int) (tuple >> 24));
break;
void decode85() throws IOException {
long tuple = 0;
int c, count = 0;
int i=0;
for (;;) {
switch (c = in[i]) {
default:
if (c < '!' || c > 'u') {
System.err.println("%s: bad character in ascii85 region: %#o\n");
System.exit(1);
tuple += (c - '!') * pow85[count++];
if (count == 5) {
wput(tuple, 4);
count = 0;
tuple = 0;
break;
case 'z':
if (count != 0) {
System.err.println("%s: z inside ascii85 5-tuple\n");
System.exit(1);
putchar(0);
putchar(0);
putchar(0);
putchar(0);
break;
case '~':
if (in[i+1] == '>') {
if (count > 0) {
count--;
tuple += pow85[count];
wput(tuple, count);
c = in[i+1];
return;
System.err.println("%s: ~ without > in ascii85 section\n");
System.exit(1);
case '\n':
case '\r':
case '\t':
case ' ':
case '\0':
case '\f':
case '\b':
case 0177:
break;
i++;
private void putchar(int l) throws IOException {
//System.out.write(l);
fos.write(l);
Does anybody have an idea to solve the problem?A scan from string function can be used as per the attachment. The double \ ('\\') is in the format string in order to interpret the '\' characters in your input string as literal characters and not special formatting.
Message Edited by Dennis Knutson on 07-10-2006 03:53 PM
Attachments:
Scan From String.JPG 5 KB
Maybe you are looking for
-
KT6V + sempron 2800 does not boot when BIOS saved
Hi, I have just bought a new sempron 2800 to be use on a KT6V LSR. I plugget in my KT6V but was not recognised well (but all was working ok with windows). To be recognised, I have flashed with the last bios of MSI my motherboard... and now I have the
-
I just registered a domain name. I would like to publish an iWeb site to own Mac Mini server. How do I get the FTP server settings?
-
I want make use of SQL Server Instance, while connecting
hi, i have developed Code using normal conditions,Like i have not checked for SQL Server Instances, my client need to b use Instances of the SQL Server, so i need to change the code. can any one help Regarding SQL Server Instances Connection coding.
-
I have been trying get on the web but i keep getting the message "packet data: max number of connections in use,close an active conection first" but when i go to 2 connection manager" there are no active connections, so i cannot close any. It was wor
-
Sales area check in backend customizing not activated - MDSD not possible
HI, While working test cases for upgrade to ECC 6.0 we encountered error message /DSD/ME 070 "Sales area check in backend processing not activated -> MDSD not possible" while trying to create a customer via an intranet application. I have searched f