|
I've been reading various articles and topics over the past few days. But most of them are either how to implement them into a website or something else. I just found a vb.net code snippet of how to do this so I converted it into C# so I have the right code I just don't know how I would record a flac file or add it to my code.
|
|
|
|
|
|
I just downloaded this and spent some time looking at it. It looks useful although I have no idea how to implement all this. I'm thinking about hiring someone to do this for me because there is no way I'm going to be able to do this.
|
|
|
|
|
Member 11436547 wrote: there is no way I'm going to be able to do this.
Well, you will never be able to do it unless you at least try.
If you hire someone, all you will get is more code you don't understand, can't maintain, and which doesn't help you with the next version.
If you at least try, you may learn something - and sufficient learning means you ended up doing it yourself all along.
But...if you want to hire someone I suggest you go to Freelancer.com and ask there.
But be aware: you get what you pay for. Pay peanuts, get monkeys.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Yes you're right but I have no idea how to even start
|
|
|
|
|
|
Thank you! That was so motivational! You're right what's the worse that can happen
|
|
|
|
|
You're welcome!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
What OG said.
Even if you hire someone, you need to educate yourself to some level first; else you will not know if you are being taken advantage of.
|
|
|
|
|
Dear Experts,
I am trying to get the value for current cell in DatagridView. I wrote code
dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString();
in CellLeave event.
but the code raise an error.
Object reference not set to an instance of an object.
But if I write the code in Button_Click event, it is working properly.
Please help.
Ahmad
|
|
|
|
|
Use the debugger.
When you get the exception, use the debugger to look at the various parts of that, and work out what the values of each part are: e.ColumnIndex, e.RowIndex, and so forth.
Personally, I'd be using dataGridView1.Rows[rowindex].Cells[columnIndex] and checking the return value to make sure there is one.
I suspect you have just mixed up the row and column, and been lucky not to get an index out of range error.
But the debugger is the best way to find out.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Thank you Sir,
I have tried your code, but I get the same error.
Below is the exception message I received.
The code works under Button_Cleck event.
System.NullReferenceException was unhandled
Message=Object reference not set to an instance of an object.
Source=ERP
StackTrace:
at ERP.frmCalendar.dataGridView1_CellLeave(Object sender, DataGridViewCellEventArgs e) in C:\Projects\ERP\ERP\GL\frmCalendar.cs:line 103
at System.Windows.Forms.DataGridView.OnCellLeave(DataGridViewCellEventArgs e)
at System.Windows.Forms.DataGridView.OnCellLeave(DataGridViewCell& dataGridViewCell, Int32 columnIndex, Int32 rowIndex)
at System.Windows.Forms.DataGridView.CommitEdit(DataGridViewCell& dataGridViewCurrentCell, DataGridViewDataErrorContexts context, DataGridViewValidateCellInternal validateCell, Boolean fireCellLeave, Boolean fireCellEnter, Boolean fireRowLeave, Boolean fireRowEnter, Boolean fireLeave)
at System.Windows.Forms.DataGridView.EndEdit(DataGridViewDataErrorContexts context, DataGridViewValidateCellInternal validateCell, Boolean fireCellLeave, Boolean fireCellEnter, Boolean fireRowLeave, Boolean fireRowEnter, Boolean fireLeave, Boolean keepFocus, Boolean resetCurrentCell, Boolean resetAnchorCell)
at System.Windows.Forms.DataGridView.CommitEditForOperation(Int32 columnIndex, Int32 rowIndex, Boolean forCurrentCellChange)
at System.Windows.Forms.DataGridView.ScrollIntoView(Int32 columnIndex, Int32 rowIndex, Boolean forCurrentCellChange)
at System.Windows.Forms.DataGridView.TabToNextCell()
at System.Windows.Forms.DataGridView.ProcessTabKey(Keys keyData)
at System.Windows.Forms.DataGridView.ProcessDialogKey(Keys keyData)
at System.Windows.Forms.Control.ProcessDialogKey(Keys keyData)
at System.Windows.Forms.TextBoxBase.ProcessDialogKey(Keys keyData)
at System.Windows.Forms.Control.PreProcessMessage(Message& msg)
at System.Windows.Forms.Control.PreProcessControlMessageInternal(Control target, Message& msg)
at System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FPreTranslateMessage(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at ERP.frmLogin.runAppl() in C:\Projects\ERP\ERP\frmLogin.cs:line 103
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
|
|
|
|
|
So use the debugger and find out which bit is null.
Then you can look at why!
But I can't do that for you - I have no access to your computer...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Hi,
when you get "Object reference not set to an instance of an object" exceptions some of the properties you invoke have returned null , in this case most likely Value for an empty grid cell. Check the Value for null before using it:
var gridValue = dataGridView1[e.ColumnIndex, e.RowIndex].Value;
if( gridValue != null )
{
string gridStringValue = gridValue.ToString();
...
}
|
|
|
|
|
string cellval = "";
if(dataGridView1[e.ColumnIndex, e.RowIndex].Value != null){
cellval = dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString();
}
I usually use Convert.ToString(...); in such cases, because it will convert a null to "" automatically.
(not useful in all cases)
|
|
|
|
|
I want to write a string to a memory mapped file. I have used Marshalling to achieve desired size of string. I am getting an exception when I try to write my structure which contains a string and an int. If I remove the string, The code runs successfully.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Runtime.InteropServices;
using System.IO.MemoryMappedFiles;
namespace ConsoleApplication25
{
class Program
{
static void Main(string[] args)
{
MemoryCreate<MemWriter> SharedData = new MemoryCreate<MemWriter>();
MemWriter MemWriterObj = new MemWriter();
if (!SharedData.open()) return;
MemWriterObj.f=10;
MemWriterObj.mystring = "Test";
SharedData.Writer = MemWriterObj;
Console.ReadLine();
SharedData.close();
}
}
class MemoryCreate<T> where T:struct
{
MemoryMappedFile mmf;
MemoryMappedViewAccessor accessor;
public bool open()
{
try
{
mmf = MemoryMappedFile.CreateNew("Test", 100);
accessor = mmf.CreateViewAccessor(0, 0);
return true;
}
catch(Exception e)
{
Console.WriteLine(e.Message);
return false;
}
}
public void close()
{
accessor.Dispose();
mmf.Dispose();
}
public T Writer
{
set
{
try
{
accessor.Write<T>(0, ref value);
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
[StructLayout(LayoutKind.Sequential,Pack=1,CharSet=CharSet.Ansi)]
struct MemWriter
{
public int f;
[MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] public string mystring;
}
}
[edit]Code block added - OriginalGriff[/edit]
modified 2-May-15 7:15am.
|
|
|
|
|
|
The exception message is "The specified Type must be a struct containing no references. Parameter name: type"
|
|
|
|
|
Assuming the exception occurs where I guess (since you have not bothered to tell us), I suspect it may be because mystring is a reference type.
|
|
|
|
|
Oh I am sorry.
The exception is raised when I try to write the struct in memory mapped file i.e. this line - SharedData.Writer = MemWriterObj;
I have marshalled mystring hoping that it would solve the problem but it doesn't.
Any idea how I can make it work?
|
|
|
|
|
|
Thank you.
But I have already checked this, it shows how to write struct having int(which I am able to do successfully), I want to write a struct having string.
|
|
|
|
|
Well, as explained, you can't; you can only write value types in a struct. If you want to write a string then you need to use one of the alternate methods, as shown in the article.
|
|
|
|
|
Basically what the error is saying is "you can't do that at all".
A struct is a value type - it contains all it's information directly within the struct itself, and teh size is always fixed at compile time. "Basic types" such as int, float, and double are also value types.
A string is a reference type - the variable you declare is not the string itself but a reference to the memory that actually contains the string data - the reference itself is a fixed size, but teh data it refers to is not.
The error message is saying "you can only give me fixed size data" - a value type, not a reference type - and that it cannot contain any references.
So the struct you pass through can only contain basic types, and structs containing basic types - no reference types, which means no strings, no arrays, no Lists, nothing complex at all.
I suspect you are going to have to find a better solution to your problem, and drop the idea of memory mapped files altogether. What exactly are you trying to do that you think you need these?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
@OrigianlGriff...That is the reason I used MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] public string mystring;
Which gives my string a fixed size(16) if I am not wrong.
I am trying to create an application which writes to a memory mapped file("test"). There will be another application which reads from the same memory mapped file and performs the specified operation.
|
|
|
|
|