Zum Inhalt springen

X_22

Mitglieder
  • Gesamte Inhalte

    22
  • Benutzer seit

  • Letzter Besuch

    Nie

Alle Inhalte von X_22

  1. Hier wird doch wohl keiner gegen das Copyright verstsen :-D
  2. Der Tipp mit der IHK ist schiss. Nachdem die von der IHK bei uns waren kann ich in meiner 6 Mann Firma nicht mehr blicken lassen.
  3. X_22

    Borland-Installation...

    Jetzt bin ich verwirt Wiso hat der einen Editor?? Als ich damit geprobt habe hab ich immer Wodpad geöfnet als TXT gespeichert und dan über parameter gelinkt. Wie soll ich denn den Editor starten??? Die scheiße mit dem zugreifen hatte ich auch, ich hab dann die include Dateien in das verzeichenis kopiert dann ging es glaube ich. Ich denke du must das irgentwo ändern, aber nur wo? =)
  4. Schitt, eine Bessere möglichkeit die letzte Zeile auszulesen kenne ich auch nicht, es geht warscheinlich nur über die möglichkeit die Datei einzulesen bis zum ende der Datei und eine Variable beinhaltet halt die letzte zeile.
  5. X_22

    Borland-Installation...

    Hahaha Den Borland C++ 5.5 Compiler hab ich mir auch runtergeladen weil ich dachte umsonst und von einer guten Firma, abe er ist schiss, weil der Compiler keinen Editor hat. Aber egal zurück zu deiner Frage. 2. From the bin directory of your installation: a. Add "c:\Borland\Bcc55" to the existing path b. Create a bcc32.cfg file which will set the compiler options for the Include and Lib paths (-I and -L switches to compiler) by adding these lines: -I"c:\Borland\Bcc55\include" -L"c:\Borland\Bcc55\lib" c. Create an ilink32.cfg file which will set the linker option for the Lib path by adding this line: -L"c:\Borland\Bcc55\lib" Da steht doch genau was du machen must =) Aber egal, 1. Du must zwei Dateien in verzeichnis Borland\Bcc55. 2. Du must eine Datei erzeugen die bcc32.cfg heißt. Darin müßen Zwei Zeilen stehen: -I"c:\Borland\Bcc55\include" -L"c:\Borland\Bcc55\lib" Dann noch eine Datei ilink32.cfg. Mit inhalt: -L"c:\Borland\Bcc55\lib Das ist nur wenn du den Compiler mit Parametern aufrufen wilst. Ich glaube die Dateien waren bei mir aber schon fertig als ich Installiert hatte, wenn Sie bei dir nicht da sind dann mach sie eben. Der Compiler ist aber echt schiss. Du must eine TXT Datei mit einer Textverarbeitung erzeugen und diese dann mit parameter aufrufen. Der Compiler besitzt keinen Editor!!! Viel Glück =)
  6. Ich hab auf einer Englischen Seite was dazu gesehen. Ist aber in VC++ /* ** FILENAME CSerialPort.h ** ** PURPOSE This class can read, write and watch one serial port. ** It sends messages to its owner when something happends on the port ** The class creates a thread for reading and writing so the main ** program is not blocked. ** ** CREATION DATE 15-09-1997 ** LAST MODIFICATION 24-11-1998 ** ** AUTHOR Remon Spekreijse ** MODIFIED BY Brian Koh Sze Hsian ** */ #ifndef __SERIALPORT_H__ #define __SERIALPORT_H__ #define WM_COMM_BREAK_DETECTED WM_USER+1 // A break was detected on input. #define WM_COMM_CTS_DETECTED WM_USER+2 // The CTS (clear-to-send) signal changed state. #define WM_COMM_DSR_DETECTED WM_USER+3 // The DSR (data-set-ready) signal changed state. #define WM_COMM_ERR_DETECTED WM_USER+4 // A line-status error occurred. Line-status errors are CE_FRAME, CE_OVERRUN, and CE_RXPARITY. #define WM_COMM_RING_DETECTED WM_USER+5 // A ring indicator was detected. #define WM_COMM_RLSD_DETECTED WM_USER+6 // The RLSD (receive-line-signal-detect) signal changed state. #define WM_COMM_RXCHAR WM_USER+7 // A character was received and placed in the input buffer. #define WM_COMM_RXFLAG_DETECTED WM_USER+8 // The event character was received and placed in the input buffer. #define WM_COMM_TXEMPTY_DETECTED WM_USER+9 // The last character in the output buffer was sent. class CSerialPort { public: // contruction and destruction CSerialPort(); virtual ~CSerialPort(); // port initialisation BOOL InitPort(CWnd* pPortOwner, UINT portnr = 1, UINT baud = 19200, char parity = 'N', UINT databits = 8, UINT stopsbits = 1, DWORD dwCommEvents = EV_RXCHAR | EV_CTS, UINT nBufferSize = 512); // start/stop comm watching BOOL StartMonitoring(); BOOL RestartMonitoring(); BOOL StopMonitoring(); DWORD GetWriteBufferSize(); DWORD GetCommEvents(); DCB GetDCB(); void WriteToPort(char* string); void WriteToPort(char* string,int stringlength); protected: // protected memberfunctions void ProcessErrorMessage(char* ErrorText); static UINT CommThread(LPVOID pParam); static void ReceiveChar(CSerialPort* port, COMSTAT comstat); static void WriteChar(CSerialPort* port); // thread CWinThread* m_Thread; // synchronisation objects CRITICAL_SECTION m_csCommunicationSync; BOOL m_bThreadAlive; // handles HANDLE m_hShutdownEvent; HANDLE m_hComm; HANDLE m_hWriteEvent; HANDLE m_hWriteCompleteEvent; // Event array. // One element is used for each event. There are two event handles for each port. // A Write event and a receive character event which is located in the overlapped structure (m_ov.hEvent). // There is a general shutdown when the port is closed. HANDLE m_hEventArray[3]; // structures OVERLAPPED m_ov; COMMTIMEOUTS m_CommTimeouts; DCB m_dcb; // owner window CWnd* m_pOwner; // misc UINT m_nPortNr; char* m_szWriteBuffer; DWORD m_dwCommEvents; DWORD m_nWriteBufferSize; int m_nActualWriteBufferSize; }; #endif __SERIALPORT_H__ /* ** FILENAME CSerialPort.cpp ** ** PURPOSE This class can read, write and watch one serial port. ** It sends messages to its owner when something happends on the port ** The class creates a thread for reading and writing so the main ** program is not blocked. ** ** CREATION DATE 15-09-1997 ** LAST MODIFICATION 24-11-1998 ** ** AUTHOR Remon Spekreijse ** MODIFIED BY Brian Koh Sze Hsian ** */ #include "stdafx.h" #include "SerialPort.h" #include <assert.h> // // Constructor // CSerialPort::CSerialPort() { m_hComm = NULL; // initialize overlapped structure members to zero m_ov.Offset = 0; m_ov.OffsetHigh = 0; // create events m_ov.hEvent = NULL; m_hWriteEvent = NULL; m_hShutdownEvent = NULL; m_szWriteBuffer = NULL; m_bThreadAlive = FALSE; m_hWriteCompleteEvent=NULL; } // // Delete dynamic memory // CSerialPort::~CSerialPort() { // resume the thread if it was suspended. Needed to process m_hShutdownEvent! if(m_Thread != NULL) { DWORD dwSuspendCount; do { dwSuspendCount = m_Thread->ResumeThread(); } while((dwSuspendCount != 0) && (dwSuspendCount != 0xffffffff) ); do { SetEvent(m_hShutdownEvent); } while (m_bThreadAlive); TRACE("Thread ended\n"); } // close handles to avoid memory leaks CloseHandle(m_ov.hEvent); CloseHandle(m_hWriteEvent); CloseHandle(m_hComm); CloseHandle(m_hShutdownEvent); CloseHandle(m_hWriteCompleteEvent); m_hComm = NULL; m_ov.hEvent = NULL; m_hWriteEvent = NULL; m_hShutdownEvent = NULL; m_hWriteCompleteEvent = NULL; if (m_szWriteBuffer != NULL) delete [] m_szWriteBuffer; DeleteCriticalSection(&m_csCommunicationSync); } // // Initialize the port. This can be port 1 to 4. // BOOL CSerialPort::InitPort(CWnd* pPortOwner, // the owner (CWnd) of the port (receives message) UINT portnr, // portnumber (1..4) UINT baud, // baudrate char parity, // parity UINT databits, // databits UINT stopbits, // stopbits DWORD dwCommEvents, // EV_RXCHAR, EV_CTS etc UINT writebuffersize) // size to the writebuffer { assert(portnr > 0 && portnr < 5); assert(pPortOwner != NULL); // if the thread is alive: Kill if (m_bThreadAlive) { do { SetEvent(m_hShutdownEvent); } while (m_bThreadAlive); TRACE("Thread ended\n"); } // create events if (m_ov.hEvent != NULL) ResetEvent(m_ov.hEvent); m_ov.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); if (m_hWriteEvent != NULL) ResetEvent(m_hWriteEvent); m_hWriteEvent = CreateEvent(NULL, TRUE, FALSE, NULL); if (m_hShutdownEvent != NULL) ResetEvent(m_hShutdownEvent); m_hShutdownEvent = CreateEvent(NULL, TRUE, FALSE, NULL); if(m_hWriteCompleteEvent != NULL) ResetEvent(m_hWriteCompleteEvent); m_hWriteCompleteEvent = CreateEvent(NULL, TRUE, FALSE, NULL); // initialize the event objects m_hEventArray[0] = m_hShutdownEvent; // highest priority m_hEventArray[1] = m_ov.hEvent; m_hEventArray[2] = m_hWriteEvent; // initialize critical section InitializeCriticalSection(&m_csCommunicationSync); // set buffersize for writing and save the owner m_pOwner = pPortOwner; if (m_szWriteBuffer != NULL) delete [] m_szWriteBuffer; m_szWriteBuffer = new char[writebuffersize]; m_nPortNr = portnr; m_nWriteBufferSize = writebuffersize; m_dwCommEvents = dwCommEvents; BOOL bResult = FALSE; char *szPort = new char[50]; char *szBaud = new char[50]; // now it critical! EnterCriticalSection(&m_csCommunicationSync); // if the port is already opened: close it if (m_hComm != NULL) { CloseHandle(m_hComm); m_hComm = NULL; } // prepare port strings sprintf(szPort, "COM%d", portnr); sprintf(szBaud, "baud=%d parity=%c data=%d stop=%d", baud, parity, databits, stopbits); // get a handle to the port m_hComm = CreateFile(szPort, // communication port string (COMX) GENERIC_READ | GENERIC_WRITE, // read/write types 0, // comm devices must be opened with exclusive access NULL, // no security attributes OPEN_EXISTING, // comm devices must use OPEN_EXISTING FILE_FLAG_OVERLAPPED, // Async I/O 0); // template must be 0 for comm devices if (m_hComm == INVALID_HANDLE_VALUE) { // port not found delete [] szPort; delete [] szBaud; return FALSE; } // set the timeout values m_CommTimeouts.ReadIntervalTimeout = 1000; m_CommTimeouts.ReadTotalTimeoutMultiplier = 1000; m_CommTimeouts.ReadTotalTimeoutConstant = 1000; m_CommTimeouts.WriteTotalTimeoutMultiplier = 1000; m_CommTimeouts.WriteTotalTimeoutConstant = 1000; // configure if (SetCommTimeouts(m_hComm, &m_CommTimeouts)) { if (SetCommMask(m_hComm, dwCommEvents)) { if (GetCommState(m_hComm, &m_dcb)) { m_dcb.fRtsControl = RTS_CONTROL_ENABLE; // set RTS bit high! if (BuildCommDCB(szBaud, &m_dcb)) { if (SetCommState(m_hComm, &m_dcb)) ; // normal operation... continue else ProcessErrorMessage("SetCommState()"); } else ProcessErrorMessage("BuildCommDCB()"); } else ProcessErrorMessage("GetCommState()"); } else ProcessErrorMessage("SetCommMask()"); } else ProcessErrorMessage("SetCommTimeouts()"); delete [] szPort; delete [] szBaud; // flush the port PurgeComm(m_hComm, PURGE_RXCLEAR | PURGE_TXCLEAR | PURGE_RXABORT | PURGE_TXABORT); // release critical section LeaveCriticalSection(&m_csCommunicationSync); TRACE("Initialisation for communicationport %d completed.\nUse Startmonitor to communicate.\n", portnr); return TRUE; } // // The CommThread Function. // UINT CSerialPort::CommThread(LPVOID pParam) { // Cast the void pointer passed to the thread back to // a pointer of CSerialPort class CSerialPort *port = (CSerialPort*)pParam; // Set the status variable in the dialog class to // TRUE to indicate the thread is running. port->m_bThreadAlive = TRUE; // Misc. variables DWORD BytesTransfered = 0; DWORD Event = 0; DWORD CommEvent = 0; DWORD dwError = 0; COMSTAT comstat; BOOL bResult = TRUE; // Clear comm buffers at startup if (port->m_hComm) // check if the port is opened PurgeComm(port->m_hComm, PURGE_RXCLEAR | PURGE_TXCLEAR | PURGE_RXABORT | PURGE_TXABORT); // begin forever loop. This loop will run as long as the thread is alive. for (; { // Make a call to WaitCommEvent(). This call will return immediatly // because our port was created as an async port (FILE_FLAG_OVERLAPPED // and an m_OverlappedStructerlapped structure specified). This call will cause the // m_OverlappedStructerlapped element m_OverlappedStruct.hEvent, which is part of the m_hEventArray to // be placed in a non-signeled state if there are no bytes available to be read, // or to a signeled state if there are bytes available. If this event handle // is set to the non-signeled state, it will be set to signeled when a // character arrives at the port. // we do this for each port! bResult = WaitCommEvent(port->m_hComm, &Event, &port->m_ov); if (!bResult) { // If WaitCommEvent() returns FALSE, process the last error to determin // the reason.. switch (dwError = GetLastError()) { case ERROR_IO_PENDING: { // This is a normal return value if there are no bytes // to read at the port. // Do nothing and continue break; } case 87: { // Under Windows NT, this value is returned for some reason. // I have not investigated why, but it is also a valid reply // Also do nothing and continue. break; } default: { // All other error codes indicate a serious error has // occured. Process this error. port->ProcessErrorMessage("WaitCommEvent()"); break; } } } else { // If WaitCommEvent() returns TRUE, check to be sure there are // actually bytes in the buffer to read. // // If you are reading more than one byte at a time from the buffer // (which this program does not do) you will have the situation occur // where the first byte to arrive will cause the WaitForMultipleObjects() // function to stop waiting. The WaitForMultipleObjects() function // resets the event handle in m_OverlappedStruct.hEvent to the non-signelead state // as it returns. // // If in the time between the reset of this event and the call to // ReadFile() more bytes arrive, the m_OverlappedStruct.hEvent handle will be set again // to the signeled state. When the call to ReadFile() occurs, it will // read all of the bytes from the buffer, and the program will // loop back around to WaitCommEvent(). // // At this point you will be in the situation where m_OverlappedStruct.hEvent is set, // but there are no bytes available to read. If you proceed and call // ReadFile(), it will return immediatly due to the async port setup, but // GetOverlappedResults() will not return until the next character arrives. // // It is not desirable for the GetOverlappedResults() function to be in // this state. The thread shutdown event (event 0) and the WriteFile() // event (Event2) will not work if the thread is blocked by GetOverlappedResults(). // // The solution to this is to check the buffer with a call to ClearCommError(). // This call will reset the event handle, and if there are no bytes to read // we can loop back through WaitCommEvent() again, then proceed. // If there are really bytes to read, do nothing and proceed. bResult = ClearCommError(port->m_hComm, &dwError, &comstat); if (comstat.cbInQue == 0) continue; } // end if bResult // Main wait function. This function will normally block the thread // until one of nine events occur that require action. Event = WaitForMultipleObjects(3, port->m_hEventArray, FALSE, INFINITE); switch (Event) { case 0: { // Shutdown event. This is event zero so it will be // the higest priority and be serviced first. port->m_bThreadAlive = FALSE; // Kill this thread. break is not needed, but makes me feel better. AfxEndThread(100); break; } case 1: // read event { GetCommMask(port->m_hComm, &CommEvent); if (CommEvent & EV_CTS) ::SendMessage(port->m_pOwner->m_hWnd, WM_COMM_CTS_DETECTED, (WPARAM) 0, (LPARAM) port->m_nPortNr); if (CommEvent & EV_RXFLAG) ::SendMessage(port->m_pOwner->m_hWnd, WM_COMM_RXFLAG_DETECTED, (WPARAM) 0, (LPARAM) port->m_nPortNr); if (CommEvent & EV_BREAK) ::SendMessage(port->m_pOwner->m_hWnd, WM_COMM_BREAK_DETECTED, (WPARAM) 0, (LPARAM) port->m_nPortNr); if (CommEvent & EV_ERR) ::SendMessage(port->m_pOwner->m_hWnd, WM_COMM_ERR_DETECTED, (WPARAM) 0, (LPARAM) port->m_nPortNr); if (CommEvent & EV_RING) ::SendMessage(port->m_pOwner->m_hWnd, WM_COMM_RING_DETECTED, (WPARAM) 0, (LPARAM) port->m_nPortNr); if (CommEvent & EV_RXCHAR) // Receive character event from port. ReceiveChar(port, comstat); break; } case 2: // write event { // Write character event from port WriteChar(port); break; } } // end switch } // close forever loop return 0; } // // start comm watching // BOOL CSerialPort::StartMonitoring() { if (!(m_Thread = AfxBeginThread(CommThread, this))) return FALSE; TRACE("Thread started\n"); return TRUE; } // // Restart the comm thread // BOOL CSerialPort::RestartMonitoring() { TRACE("Thread resumed\n"); m_Thread->ResumeThread(); return TRUE; } // // Suspend the comm thread // BOOL CSerialPort::StopMonitoring() { TRACE("Thread suspended\n"); m_Thread->SuspendThread(); return TRUE; } // // If there is a error, give the right message // void CSerialPort::ProcessErrorMessage(char* ErrorText) { char *Temp = new char[200]; LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language (LPTSTR) &lpMsgBuf, 0, NULL ); sprintf(Temp, "WARNING: %s Failed with the following error: \n%s\nPort: %d\n", (char*)ErrorText, lpMsgBuf, m_nPortNr); MessageBox(NULL, Temp, "Application Error", MB_ICONSTOP); LocalFree(lpMsgBuf); delete[] Temp; } // // Write a character. // void CSerialPort::WriteChar(CSerialPort* port) { BOOL bWrite = TRUE; BOOL bResult = TRUE; DWORD BytesSent = 0; ResetEvent(port->m_hWriteEvent); // Gain ownership of the critical section EnterCriticalSection(&port->m_csCommunicationSync); if (bWrite) { // Initailize variables port->m_ov.Offset = 0; port->m_ov.OffsetHigh = 0; // Clear buffer PurgeComm(port->m_hComm, PURGE_RXCLEAR | PURGE_TXCLEAR | PURGE_RXABORT | PURGE_TXABORT); bResult = WriteFile(port->m_hComm, // Handle to COMM Port port->m_szWriteBuffer, // Pointer to message buffer in calling finction port->m_nActualWriteBufferSize, // strlen(port->m_szWriteBuffer), // Length of message to send &BytesSent, // Where to store the number of bytes sent &port->m_ov); // Overlapped structure // deal with any error codes if (!bResult) { DWORD dwError = GetLastError(); switch (dwError) { case ERROR_IO_PENDING: { // continue to GetOverlappedResults() BytesSent = 0; bWrite = FALSE; break; } default: { // all other error codes port->ProcessErrorMessage("WriteFile()"); } } } else { LeaveCriticalSection(&port->m_csCommunicationSync); } } // end if(bWrite) if (!bWrite) { bWrite = TRUE; bResult = GetOverlappedResult(port->m_hComm, // Handle to COMM port &port->m_ov, // Overlapped structure &BytesSent, // Stores number of bytes sent TRUE); // Wait flag LeaveCriticalSection(&port->m_csCommunicationSync); // deal with the error code if (!bResult) { port->ProcessErrorMessage("GetOverlappedResults() in WriteFile()"); } } // end if (!bWrite) // Verify that the data size send equals what we tried to send if (BytesSent != strlen((char*)port->m_szWriteBuffer)) { TRACE("WARNING: WriteFile() error.. Bytes Sent: %d; Message Length: %d\n", BytesSent, strlen((char*)port->m_szWriteBuffer)); } SetEvent(port->m_hWriteCompleteEvent); } // // Character received. Inform the owner // void CSerialPort::ReceiveChar(CSerialPort* port, COMSTAT comstat) { BOOL bRead = TRUE; BOOL bResult = TRUE; DWORD dwError = 0; DWORD BytesRead = 0; unsigned char RXBuff; for (; { // Gain ownership of the comm port critical section. // This process guarantees no other part of this program // is using the port object. EnterCriticalSection(&port->m_csCommunicationSync); // ClearCommError() will update the COMSTAT structure and // clear any other errors. bResult = ClearCommError(port->m_hComm, &dwError, &comstat); LeaveCriticalSection(&port->m_csCommunicationSync); // start forever loop. I use this type of loop because I // do not know at runtime how many loops this will have to // run. My solution is to start a forever loop and to // break out of it when I have processed all of the // data available. Be careful with this approach and // be sure your loop will exit. // My reasons for this are not as clear in this sample // as it is in my production code, but I have found this // solutiion to be the most efficient way to do this. if (comstat.cbInQue == 0) { // break out when all bytes have been read break; } EnterCriticalSection(&port->m_csCommunicationSync); if (bRead) { bResult = ReadFile(port->m_hComm, // Handle to COMM port &RXBuff, // RX Buffer Pointer 1, // Read one byte &BytesRead, // Stores number of bytes read &port->m_ov); // pointer to the m_ov structure // deal with the error code if (!bResult) { switch (dwError = GetLastError()) { case ERROR_IO_PENDING: { // asynchronous i/o is still in progress // Proceed on to GetOverlappedResults(); bRead = FALSE; break; } default: { // Another error has occured. Process this error. port->ProcessErrorMessage("ReadFile()"); break; } } } else { // ReadFile() returned complete. It is not necessary to call GetOverlappedResults() bRead = TRUE; } } // close if (bRead) if (!bRead) { bRead = TRUE; bResult = GetOverlappedResult(port->m_hComm, // Handle to COMM port &port->m_ov, // Overlapped structure &BytesRead, // Stores number of bytes read TRUE); // Wait flag // deal with the error code if (!bResult) { port->ProcessErrorMessage("GetOverlappedResults() in ReadFile()"); } } // close if (!bRead) LeaveCriticalSection(&port->m_csCommunicationSync); // notify parent that a byte was received ::SendMessage((port->m_pOwner)->m_hWnd, WM_COMM_RXCHAR, (WPARAM) RXBuff, (LPARAM) port->m_nPortNr); } // end forever loop } // // Write a string to the port - This can write even NULL characters // void CSerialPort::WriteToPort(char* string, int stringlength) { assert(m_hComm != 0); ResetEvent(m_hWriteCompleteEvent); EnterCriticalSection(&m_csCommunicationSync); memset(m_szWriteBuffer, 0, sizeof(m_szWriteBuffer)); for(int i=0;i<stringlength;i++) m_szWriteBuffer=string; m_nActualWriteBufferSize=stringlength; LeaveCriticalSection(&m_csCommunicationSync); // set event for write SetEvent(m_hWriteEvent); WaitForSingleObject(m_hWriteCompleteEvent,INFINITE); } // // Return the device control block // DCB CSerialPort::GetDCB() { return m_dcb; } // // Return the communication event masks // DWORD CSerialPort::GetCommEvents() { return m_dwCommEvents; } // // Return the output buffer size // DWORD CSerialPort::GetWriteBufferSize() { return m_nWriteBufferSize; }
  7. X_22

    C Forum

    Jo, kennt von euch jemand ein gutes Programmier Forum wo mehr los ist als hier? Am besten über C
  8. Ops da steht ja /* lette */ das sollte Latte heißen.
  9. Dev-C++ 4 ist der beste Freeware Compiler denn ich kenne. Du bekommst ihn auf http://download.cnet.com/downloads/0-10085-100-1683220.html Natürlich brauchst du noch lektüre, ein paar totorials bekommst du auf http://www.c-plusplus.de/tutorials.htm oder du bekommst ein komplettes Buch unter http://www.mut.de/leseecke/leseecke.asp Da gibts zwar nur ein buch über Visual C++ das ist aber lette (du kannst das komplette Buch vom Hersteller runterladen =)
  10. Oh man wenn ich sowas lese! Weisst du was wir machen? Wir machen Excel-VBA und Access-Formulare! Da lernt man viel, wah? Das nennt sich bei uns Anwendungsentwicklung X_22@Spike HAHAHAHAHAHAHAHAHAHAHAHAHHAHAHAHAHAHAAHA Bei dir in der Schule ist das ja krass. Nachmal: HAHAHAHAHAHAHAHAHAHAHAHAHHAHAHAHAHAHAAHA
  11. OK mit dem Lernen habt ihr schon recht, aber wenn ich eine Ausbildung anfange erwarte ich doch zumindest das ich was vom Betrieb aus lerne. Ich hab kein Praktikum in meiner Firma gemacht und konnte daher auch nicht erfahren wie sie ist. Naja so schlecht ist das ja auch nicht das ich beschäftige mich schon selbt aber der Nutzen einer Ausbildung geht dabei verloren.
  12. @CaptainKirk Ok, ich gehe mal deinen Tipp durch. Computer, Internetanschluss, die Programme die ich an der Arbeit benutze habe ich alles daheim. Wozu dann noch in den Betrieb gehen?? Die idea ist gut ich schnapp mir meine Lehrplan und mache meine Ausbildung daheim, danach mache ich eine andere Ausbildung daheim. Daja mal im Ernst wozu gehe ich dann noch hin wenn ich das alles daheim machen kann?? Die Ausbildung muss mir doch was nützen. Das das tut sie in meinem Fahl nicht.
  13. Option Explicit Private Sub Command1_Click() Uhhhhhhh.... Ein Code ist ja grauenvoll. Der besteht ja nur aus IF befehlen. Blöderweise kann ich kein Delphi aber weil Delphi und Visual Basic ähnlich sind hab ich mal dein Programm in VB geschrieben. Vieleicht hilft es dir ja weiter, wenn du den Code in Delphi schreibst. Dim Text As String 'Variablen werden Deklariert Dim N As Integer Dim TextZeichen As String * 1 Dim Punkt As Integer, Komma As Integer, Zahl As Integer, Buch As Integer Text = Text1 'der Text wird zugewiesen For N = Len(Text) To 0 Step -1 'Die schleife fährt die Zeichenkette ab TextZeichen = Mid$(Text, N, 1) 'Ich holle mir ein Zeichen aus der Zeichenkette If TextZeichen = "." Then Punkt = Punkt + 1 'wenn Zeichen . ist dann Zähler +1 If TextZeichen = "," Then Komma = Komma + 1 'wenn Zeichen , ist dann Zähler +1 Select Case TextZeichen Case 1 To 9 Zahl = Zahl + 1 Case "a" To "z" Buch = Buch + 1 End Select If N = 1 Then Exit For Next MsgBox ("Punkt: " & Punkt) MsgBox ("Komma: " & Komma) MsgBox ("Zahlen: " & Zahl) MsgBox ("Buchstaben: " & Buch) End Sub
  14. Das sehe ich ganauso, und ich bekomme nichts erklärt was ich in der Prüfung gebrauche kann.
  15. Klar nutze ich die Zeit mit Programmieren. Aber bei der Prüfung bringt mich das auch nicht weiter!
  16. Jo, keine Ursache. (hab genug Zeit)
  17. Glück oder Unglück mit dem Ausbilder ist ansichtssache. Die Idea ist aber nicht schlecht, ich denke ich werde sie mal aufgreifen. #include <stdio.h> void main() { printf("Juhu, ich hab zuviel Zeit\n"); }
  18. /* kannst also den ganzen Tag machen und tun was Du willst. Nutz das doch aus! Probier, studier, mach was! Kauf Dir Bücher und lese die, surf im Internet und hol Dir Input. Ich würd was drum geben, wenn ich meinen nervenden Ausbilder (sorry Frank ) los wäre. Think positiv. Mach was draus. */ ( C ) Na was denkst du denn was ich denn ganzen Tag mache?? ich programmier eigentlich denn ganzen Tag. Aber irgentwie wird mich das in meiner Ausbildung auch nicht weiter bringen. Sonst lerne ich eigentlich nichts. (Ist ja auch gut das nur programmieren beim Test der IHK vorkommen )-). Also so toll ist das auf die Dauer auch nicht. ------------------
  19. Ob das so egal ist bin ich mir nicht sicher. Die SI machen schon was anderes als die AW. Soch kenne ich es zumindes aus der schule. Ich wollte erst SI bin aber doch froh das ich AW bin. Ach noch was probier infos über den Betrieb zu bekommen!!! Dann kanst du abschätzen was du dann da machst. Ich find das z.b voll arm was die FISI bei Siemens machen müssen (Metallarbeiten in der Ausbildung, die IT-Systemelektroniker installieren Alarmanlagen, Ampelanlagen (echt klasse :-D )). Oder wie ich mache ich nichts bei mir (schau mal in den Ausbildung/Job in den IT-Berufen Forum Thema Thema: Scheiß Ausbildung!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! )
  20. Das mit den ! muste einfach mal sein. Egal fange ich mal an. habe am 08.08.00 meine Ausbildung angefangen, zum FIAW, in der Schule komme ich eigentlich klar obwohl ich der einzige FIAW in meiner Klasse bin der Realschulabschluss hat. (Davon kann ich mir dann auch was kaufen) Mit jemanden sprechen?? ich weiß nicht so recht mit wem ich in meiner 6 Mann Firma so reden solte, der Chef hat garkeine peilung, mein Ausbilder ist dauert weg (und in der letzden Zeit auch mieß gelaunt), der andere Mitarbeiter will sich da raushalten. Dann gibts noch die Sekreterin und den anderen AZUBI. Alles scheiße!!!!!!!!!! (Da sind sie wieder =) ), (die klamern kommen vom Programmieren :-D). Denn ganzen Tag beschäftige ich mich irgentwie mit Computer oder schreibe gerade in ein Forum.
  21. Wiso das so ist weiß ich auch net, du kannst die Position ja im unteren Rechten Fenster festlegen (heißt Formula-Layout (ja ich muste nachschauen)). (Die vielen klammern kommen vom Programmieren :-) ). Wenn du das andere Form aufrufst kannst du ja die eigenschaften von dem Form festlegen mach das doch einfach bei allen drei. z.b form2.height= 1015 form2.width=1500 form2.top=30 form2.left=60 form2.show ich hoffe das war ein bischen verständlich.
  22. Verdammt jetzt ist mir aufgefallen das meine Ausbildung total scheiße ist. Ich habe eigentlich denn ganzen Tag nichts weiter zu tun, mein Ausbilder kommt (wenn er gut drauf ist) ein mal am Tag vorbei und schaut was ich mache. Was soll ich von der Ausbildung halten???

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...