|
You could perhaps skip some unnecessary reductions in a more explicit way, though most of the ways to do that make it possible to hold an unreduced fraction and use it in ways that it isn't meant to be used. I'm think of approaches such as returning unreduced fractions from arithmetic operators, and having reduce return a new fraction. If you made reduced and unreduced fractions separate types, you could still maintain a safe interface, but it also complicates everything. I can't really think of a solution that is just all around a Great Solution, perhaps someone else has more inspiration?
TBH I would probably resort to just using plain ints in most of the math routines, so that from the outside all fractions are nice and reduced and no weird problems arise, but internally the cost of unnecessary reductions is not paid. Not a Great Solution since it breaks through the abstraction but I could live with that because it is contained. This approach probably allows the most optimization since everything is super explicit, so if that's the focus it may be reasonable.
With the Euclidean algorithm the cost of reducing is typically one or two divisions (a handful at worst) and a couple of branches, not ideal but probably not a huge deal, I don't know. Not as big a deal as factorization at least.
|
|
|
|
|
An experiment I ran:
using System;
namespace Test
{
class Foo
{
public int a = 2;
public override string ToString()
{
a = 3;
return a.ToString();
}
}
class Solver
{
public static void Main()
{
Foo x = new Foo();
Console.WriteLine(x.a);
}
}
}
This does indeed print 2 when run, but 3 when debugged, so the debugger definitely calls ToString directly on the object in the given code. While there are other details to fill in about what was happening in my program, this is one thing cleared up.
|
|
|
|
|
Hello everyone, first post here, so if you see errors on posting/explaining, make me know to fix it...
What i want to make it's form that parse an INTRANET webpage and bring me data back to show it on labels....
I have tried with HtlmAgilityPack, but it doesn't parse anything of that web, cause its intranet, and i'm doing something that don't fit well. It returns me an error like "specific node can't be null"...
Something like this:
public class Program
{
public static void Main()
{
var html = @"http://html-agility-pack.net/"; HERE GOES MY INTRANET URL, AND NOT THIS.
HtmlWeb web = new HtmlWeb();
var htmlDoc = web.Load(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//td/span");
}
}
Something like this:
https://imgur.com/uk4Wztd[^]
When click in the button, bring me the especific data.
|
|
|
|
|
Member 13447810 wrote: What i want to make it's form that parse an INTRANET webpage and bring me data back to show it on labels.... That makes no sense at all in my limited mind.
You have a webpage, shown in a browser. And now you want a WinForm to fetch those values?
Member 13447810 wrote: I have tried with HtlmAgilityPack, but it doesn't parse anything of that web, cause its intranet, and i'm doing something that don't fit well. Works as well with internet as well as intranet; there is no difference between those two on that level.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: That makes no sense at all in my limited mind.
You have a webpage, shown in a browser. And now you want a WinForm to fetch those values?
The problem is that people working here shouldn't use internet, but they do. So, we need to take them off of the browser, then putting it on a Winform will make it easier to block them from internet.
Any idea?
|
|
|
|
|
Install a firewall.
Building a new GUI does not make sense if you just want to limit access.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
i have these data in sql table
Hide Copy Code
02 Dec 2013 Monday xxx 1 11:38:00 18:00:00
02 Dec 2013 Monday xxx 1 11:22:00 no time out
02 Dec 2013 Monday xxx 1 11:26:00 19:21:00
02 Dec 2013 Monday xxx 1 11:47:00 20:11:00
02 Dec 2013 Monday xxx 1 12:18:00 no time out
02 Dec 2013 Monday xxx 1 13:54:00 21:40:00
02 Dec 2013 Monday xxx 1 11:22:00 19:23:00
02 Dec 2013 Monday xxx 1 11:26:00 19:32:00
02 Dec 2013 Monday xxx 1 11:44:00 21:39:00
02 Dec 2013 Monday xxx 1 12:13:00 20:11:00
02 Dec 2013 Monday xxx 1 12:21:00 no time out
02 Dec 2013 Monday xxx 1 12:22:00 no time out
02 Dec 2013 Monday xxx 1 12:28:00 no time out
02 Dec 2013 Monday xxx 1 12:29:00 18:46:00
02 Dec 2013 Monday xxx 1 12:47:00 no time out
02 Dec 2013 Monday xxx 1 13:53:00 21:29:00
02 Dec 2013 Monday xxx 1 11:47:00 no time out
02 Dec 2013 Monday xxx 1 14:41:00 no time out
02 Dec 2013 Monday xxx 1 15:09:00 22:11:00
02 Dec 2013 Monday xxx 1 12:39:00 no time out
i want show this data like this
Hide Copy Code
Name 1-Dec 2-Dec 3-Dec
IN OUT IN OUT IN OUT
|
|
|
|
|
|
Hi i have 3 dropdowns the primary one is filled via jquery ajax request and it fills 2nd dropdown based on seletion and 3rd one is filled after 2nd's selection.
It was previously used Dropdown selected change event which AutoPostBack and gets data from server and page get refresh again and again. Instead of doing this i replace selection change events with jquery ajax calls and its seems fine but now when i click on my search button to fetch data based on selection it loses all dropdown's previous state and reset to default as on fresh page load. Whereas, my repeater remains the data which i had bound on button click. Any help regarding this issue???
|
|
|
|
|
Please use the ASP.NET forum for ASP.NET questions.
|
|
|
|
|
dear friends,
I'm new in Json, I need some help
here's the data:
{
"CardCode": "C001",
"PostingDate": "2017-05-17",
"DocDueDate": "2017-05-17",
"TaxDate": "2017-05-17",
"SalesPersonCode": "-1",
"DocumentNumberingPOS":"2",
"PrimaryNumberingPOS":"A002",
"lines": [{
"ItemCode": "ITEM0001",
"WarehouseCode": "PST-000",
"Quantity": "1",
"Price": "50000"
}, {
"ItemCode": "ITEM0002",
"WarehouseCode": "PST-000",
"Quantity": "1",
"Price": "10000"
}
]
}
and this is the result
{
"errorCode": "0",
"message": "Data has beed added",
"value": "23"
}
I've try to create the code in C#, but still nothing happen, and I don't know how to show the result in text box, and for the login to url, there's username: username and password: password,
here's my code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Net;
using Newtonsoft.Json;
namespace JsonTest
{
public partial class Form1 : Form
{
private string respon;
private static void PostJson(string url, template postParameters)
{
string postData = JsonConvert.SerializeObject(postParameters);
byte[] bytes = Encoding.UTF8.GetBytes(postData);
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.Method = "POST";
httpWebRequest.ContentLength = bytes.Length;
httpWebRequest.ContentType = "application/json";
string autorization = "username" + ":" + "password";
byte[] binaryAuthorization = System.Text.Encoding.UTF8.GetBytes(autorization);
autorization = Convert.ToBase64String(binaryAuthorization);
autorization = "Basic " + autorization;
httpWebRequest.Headers.Add("AUTHORIZATION", autorization);
using (Stream requestStream = httpWebRequest.GetRequestStream())
{
requestStream.Write(bytes, 0, bytes.Count());
}
var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
if (httpWebResponse.StatusCode != HttpStatusCode.OK)
{
string message = String.Format("POST failed. Received HTTP {0}", httpWebResponse.StatusCode);
throw new ApplicationException(message);
}
}
private static void Result(string url, template postParameters)
{
//string respon;
string postData = JsonConvert.SerializeObject(postParameters);
byte[] bytes = Encoding.UTF8.GetBytes(postData);
System.Net.WebRequest request = System.Net.HttpWebRequest.Create("http:xxxxxxxx/api/CustomerSalesOrder"); // This only for your testing
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.Method = "GET";
httpWebRequest.ContentLength = bytes.Length;
httpWebRequest.ContentType = "application/json";
string autorization = "admin" + ":" + "admin";
byte[] binaryAuthorization = System.Text.Encoding.UTF8.GetBytes(autorization);
autorization = Convert.ToBase64String(binaryAuthorization);
autorization = "Basic " + autorization;
httpWebRequest.Headers.Add("AUTHORIZATION", autorization); //System.Net.WebRequest request = System.Net.HttpWebRequest.Create("(ServerLocal)/WSLokalRest/Peserta/peserta/" + txtNoKartu.Text); Get This from your Client (live)
try
{
System.Net.WebResponse response1 = request.GetResponse();
System.IO.Stream stream = response1.GetResponseStream();
System.IO.StreamReader reader = new System.IO.StreamReader(stream);
string contents = reader.ReadToEnd();
respon = contents;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
PostJson("http:xxxxxxx/api/CustomerSalesOrder", new template{ });
var template = new template
{
CardCode = "C001",
PostingDate = "2017-05-17",
DocDueDate = "2017-05-17",
TaxDate = "2017-05-17",
SalesPersonCode = "-1",
DocumentNumberingPOS = "2",
PrimaryNumberingPOS = "A002",
};
template.Lines.Add(new template_item
{
ItemCode = "ITEM0001",
WarehouseCode = "PST-000",
Quantity = "1",
Price = "50000",
});
template.Lines.Add(new template_item
{
ItemCode = "ITEM0002",
WarehouseCode = "PST-000",
Quantity = "1",
Price = "10000"
});
txtRespon.Text = respon;
}
}
public class template
{
public string CardCode { get; set; }
public string PostingDate { get; set; }
public string DocDueDate { get; set; }
public string TaxDate { get; set; }
public string SalesPersonCode { get; set; }
public string DocumentNumberingPOS { get; set; }
public string PrimaryNumberingPOS { get; set; }
public static List<template_item> Lines = new List<template_item>();
}
public class template_item
{
public string ItemCode { get; set; }
public string WarehouseCode { get; set; }
public string Quantity { get; set; }
public string Price { get; set; }
}
}
Does anyone could help me ?
Thank you for your help
Regards,
Steve Henry
|
|
|
|
|
|
That is lousy advice, as a newbie he may want a discussion on how to achieve his requirements.
Redirecting his inquiry from c# to web forum or quick answers may be valid because of the context of the question but to redirect everything to quick answers for a "speedy" response is not valid.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
This is the first post for him in Codeproject, may be he is not aware of quick answers section thats why gave a headsup.
since the question is related to json, he might get quick response in QA.
|
|
|
|
|
I agree with Mycroft, there is nothing wrong with the OP's question being here. And no guarantee that he will get a faster answer in QA.
|
|
|
|
|
You have not explained what is wrong with the result, or where you think your code is going wrong. Also, it would really help if you use proper indentation of your code, and the code button to add <pre></pre> tags around your code to make it readable, thus:
public class template_item
{
public string ItemCode { get; set; }
public string WarehouseCode { get; set; }
public string Quantity { get; set; }
public string Price { get; set; }
}
|
|
|
|
|
Hello everyone, I kindly ask for an orientation in my code, which is done in C # with Android Debug Bridge (ADB) commands that run at a DOS prompt.
The command basically reads the serial number from my tablet and transfers it to a textBox. Until then, no problem. However I need to copy this serial number from this textBox and transfer it to a new ADB command in DOS to read the battery data. Below is the code for better understanding, the first block is to get the serial number and transfer it to textBox1:
{
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.FileName = "adb.exe";
startInfo.Arguments = "get-serialno";
process.StartInfo = startInfo;
process.Start();
string output1 = process.StandardOutput.ReadToEnd();
textBox1.Text = output1;
process.WaitForExit();
}
And the second block is the code that will direct the commands to the serial number:
startInfo.FileName = "adb.exe";
startInfo.Arguments = "-s " + textBox1.Text + " shell dumpsys battery";
process.StartInfo = startInfo;
process.Start();
string output = process.StandardOutput.ReadToEnd();
richTextBox1.Text = output;
process.WaitForExit();
But I can not get it to recognize the variable in the argument line. I've tried to concatenate, without success ... where am I going wrong? What I've already tried, in the searches I've done:
startInfo.Arguments = String.Format(@"/c adb -s ""{0}"" shell dumpsys battery", output1);
startInfo.Arguments = "/c adb -s \"" + output1 + "\" shell dumpsys battery";
startInfo.Arguments = $@"/c adb -s ""{output1}"" shell dumpsys battery";
Thanks a lot!
|
|
|
|
|
What is the actual value of the startinfo string when you call Process.Start?
|
|
|
|
|
The value is
e16025f4
If I store this value like this:
startInfo.Arguments = "-s e16025f4 shell dumpsys battery";
It works perfectly!
|
|
|
|
|
No, I mean what is the value of the startInfo.Arguments string when you call process.Start()? Use your debugger to see the exact values when you run the code, not what you think it will be.
|
|
|
|
|
Open a command line, and type in the command. Does it work? Try it until that works. Then tell us what you typed in the command line, and we might be able to figure out how to create that command from C#.
Oh sanctissimi Wilhelmus, Theodorus, et Fredericus!
|
|
|
|
|
Hi, the command I type in command line thats works is this:
-s e16025f4 shell dumpsys battery
I am trying to figure out a way to use a string or anything to copy the text (the serial number text e16025f4) from the textbox and use it in the command line, because this value is dynamic and changes everytime I connect a different tablet or cellphone in the computer.
|
|
|
|
|
Then it is e.g.
startInfo.Arguments = $"-s {output} shell dumpsys battery";
Oh sanctissimi Wilhelmus, Theodorus, et Fredericus!
|
|
|
|
|
Hello
I need help to create a simple editor with intellisense in c# (should be used to format SSML files).
I imagine some kind of textbox where the user can write text and when pressing < a dropdown list is shown containing different elements. When an element is selectet the options for the elements is shown when typing (or something like that) and when < is press again the closing element should be shown as the first element in the dropdown list.
I would be nice if new element and options could be added to the editor in a simple way (list or xml file).
I do not know it it makes sense, if - can anyone tell me where to find samples or / opensource for it.
|
|
|
|
|
This site actually contains multiple articles on that topic. I'm using Scintilla.NET, as it also works nicely under Ubuntu. Ask Google for details.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|