Read txt-file

Mitglied: ChristianWaltjen

ChristianWaltjen (Level 1) - Jetzt verbinden

31.08.2006, aktualisiert 15.09.2006, 5000 Aufrufe, 6 Kommentare

Hy.
Ich versuche gerade ein txt-file auszulesen und habe mir zu Testzwecken ein comandozeilen-Programm geschrieben.
Allerdings bekomme ich nicht das Ergebniss, das ich erwahrtet habe.

Im Moment möchte ich einfach nur das File auslesen und die Namen ausgeben.
Vielleicht kann mir ja irgendwer weiterhelfen.

Das File das ich auslesen möchte sieht wie folgt aus:

P-Render01
P-Render02
P-Render03
P-Render04
P-Render05
P-Render06
P-Render07

Das ist mein Code:

#include "stdafx.h"
#include <iostream>
#include <cstring>
#include <fstream>
#include <afxcoll.h>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
CStringArray rechnerNames;
int RechnerCounter = 0;
char inWord[20];
ifstream inFile;
inFile.open("RechnerFile.txt");
if (!inFile){
return 1;
}
while (inFile >> inWord){
rechnerNames.Add( inWord );
cout << *rechnerNames[RechnerCounter] << endl;
RechnerCounter++;
}
inFile.close();
rechnerNames.FreeExtra();
return 0;
}

Falscher output im Moment:
80
80
80
80
...


Vielen Dank im vorraus:
ChristianWaltjen
Mitglied: GreyFox
13.09.2006 um 16:16 Uhr
Probiere es mal stat *rechnerNames[RechnerCounter]
rechnerNames.GetAt[RechnerCounter]
STL halt ^^

Beim Rest sehe ich eigentlich keine Probleme ...
Bitte warten ..
Mitglied: ChristianWaltjen
14.09.2006 um 12:04 Uhr
Hallo GreyFox,
erstmal Danke für den Tip.

Ich habe jetzt die Zeile:
cout << *rechnerNames[RechnerCounter] << endl;
durch
cout << rechnerNames.GetAt(RechnerCounter) << endl;
ersetzt

Und bekomme jetzt:

00435818
0043B2F0
0043B500
0043B558
0043B5B0
...

Aber nicht die Namen aus der Datei, obwohl diese korrekt in inWord abgelegt werden.
Bitte warten ..
Mitglied: ChristianWaltjen
14.09.2006 um 12:30 Uhr
Für mich sieht das so aus, als ob die Convertierung von char[20] nach CString nicht einwandfrei ist und die Adresse von ersten zeichen gespeichert wird.
Bitte warten ..
Mitglied: GreyFox
14.09.2006 um 16:33 Uhr
dann entweder per Typecast sprich (LPCSTR) oder per GetBuffer oder per per Format und und und
Aber eigentlich ist die Konvertierung von Char zu CString nahtlos ...

Tatsache ist ...
00435818
0043B2F0
0043B500
0043B558
0043B5B0
das sind wirklich Adressen
0043B500
0043B558
Das sind 11 Byte abstand ... d.h. 10 Byte Zeichen Plus Terminierung ... CString brauch wahrscheinlich einen char Pointer ^^
Bitte warten ..
Mitglied: ChristianWaltjen
15.09.2006 um 12:57 Uhr
Also ich habe jetzt 'SetAtGrow' benutzt das ganze Debugged (dummes neudeutsch).
Der Name scheint ordungsgemäss in dem CStringArray gespeichert zu werden:

http://www.puppeteers.de/kunden/Christian/DeBug.jpg

GetData ist natürlich nicht richtig.

Fragt sich jetzt nur noch wie ich an den Namen komme.
Ich bekomme nämlich immernoch die Adresse des ersten Zeichens.

Output:

00435df8

Bitte warten ..
Mitglied: ChristianWaltjen
15.09.2006 um 13:34 Uhr
So Ich hab jetzt die convertierungen voneinander getrennt. Und alles Debuggt
Jetzt sieht der Code aus wie folgt:

...
while (inFile >> inWord){
rechnerNames.SetAtGrow( RechnerCounter, inWord );
CString outElement = rechnerNames[RechnerCounter];
cout << outElement << endl; # 'outElement' enthällt laut Debugger: "P-Render01"
RechnerCounter++;
}
...

Output:
00435DF8

Also langsam verstehe ich es nicht mehr.
Bitte warten ..
Heiß diskutierte Inhalte
Off Topic
Ein Weg weg von Microsoft. Wie würde man es angehen? Lasst uns doch etwas spinnen
it-fraggleVor 1 TagAllgemeinOff Topic48 Kommentare

Guten Morgen Kollegen, es treibt mich schon seit einigen Jahren um, dass es sinnvoll wäre langsam einen Weg weg von Microsoftprodukten zu finden. Mir ...

Batch & Shell
Wieso funktioniert das nicht?
gelöst Hundy132Vor 1 TagFrageBatch & Shell10 Kommentare

Hallo Freunde, kann mir irgendjemand sagen wieso meine Batch datei nicht funktioniert? So sieht Sie aus: Hier soll ein ein vorgegebenes Passwort Eingegeben werden ...

Server-Hardware
HPE ProLiant MicroServer Gen10 Plus - Wo wird das OS installiert?
mayho33Vor 1 TagFrageServer-Hardware13 Kommentare

Hallo @ All, Ich liebäugle mit einem neuem Server (siehe Überschrift). Mein alter Gen8 ist zwar immer noch am laufen, aber es gibt einiges ...

Windows Server
Server 2019 RDS-CALs für Domänen-Admins? Ernsthaft?
gelöst anteNopeVor 1 TagFrageWindows Server7 Kommentare

Nabend zusammen, ich habe hier heute einen RDS auf Basis eines Server 2019 STD installiert und mit User-CALs lizenziert. Soweit funktioniert auch alles. Nur ...

Router & Routing
Probleme mit VPN Verbindung über shrewsoft
martenkVor 1 TagFrageRouter & Routing26 Kommentare

Hallo Gemeinschaft, habe ein Problem mit der o.g. Verbindung die Verbindung wird aufgebaut und ich kann auch den entfernten Rechner anpingen unter ipconfig sehe ...

Exchange Server
Outlook Automatisch auf alle eingehendem Mail eine Antwortvorlage versenden
shooanVor 1 TagFrageExchange Server14 Kommentare

Guten Morgen, ich hätte da gerne mal ein Problem zur Lösung. Auf das Freigegeben Postfach Bewerbung@ wünscht nun die Führung das auf alle Mail ...

Hardware
Versorgungsengpass Chips
NebellichtVor 21 StundenAllgemeinHardware11 Kommentare

Allg. frage ich mich ja warum Apple auf ARM frühzeitig gesetzt hat. Die Automobilindustrie gerade Absatzprobleme hat, weil keine Chips mehr geliefert werden können. ...

LAN, WAN, Wireless
100m GBit-Richtfunk im Freien - Produktempfehlungen?
mstrd308Vor 1 TagFrageLAN, WAN, Wireless9 Kommentare

Hallo zusammen, ich bin auf der Suche nach Produktempfehlungen um einen Richtfunk von einem Gebäude zu einen weiteren zu realisieren. Die Peripherie soll draußen ...