AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe bei datei auslesen

Ein Thema von Pseudemys Nelsoni · begonnen am 24. Jun 2004 · letzter Beitrag vom 25. Jun 2004
Antwort Antwort
Seite 2 von 3     12 3      
Kernel32.DLL
(Gast)

n/a Beiträge
 
#11

Re: Hilfe bei datei auslesen

  Alt 24. Jun 2004, 20:30
Zitat:
1. if hFile <> INVALID_HANDLE_VALUE then << Das hier funktioniert nicht, "Inkompatible Typen".
Das kann nicht funktionieren, weil TextFile eine Pascal-interne Variable ist. Um INVALID_HANDLE_VALUE benutzen zu können, bedarf es IMHO einem Fensterhandle, dass einen Integerwert hat. Dies bekommt man aber direkt über die Win-API.

Mich würde interessieren, welche Variable du wie deklariert hast. Evtl. liegt der Fehler einfach in einer Vermischung von Pascal- und WinAPI-Variablen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Hilfe bei datei auslesen

  Alt 24. Jun 2004, 20:34
Und noch was. Warum ist buf ein PChar, wo du es doch so wie so wieder nach String castest?
Delphi-Quellcode:
lstrcat(buf, '\System32\testordner\datei');
AssignFile(hFile, string(buf));
Hat die Datei keine Dateinamenerweiterung?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Kernel32.DLL
(Gast)

n/a Beiträge
 
#13

Re: Hilfe bei datei auslesen

  Alt 24. Jun 2004, 20:43
@Luckie:
Zitat:
Hat die Datei keine Dateinamenerweiterung?
Zitat:
Die Datei hat zwar nicht die Endung ".txt"(um genau zu sein - sie hat gar keine Endung)...
Bitte sehr, gern geschehen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Hilfe bei datei auslesen

  Alt 24. Jun 2004, 20:47
Aha, man sollte doch immer alles lesen.

Also, so lange hie rnicht der komplette Quelltext der Routine gepostet wird ist es nur ein Rumgerate.

Nur noch eine Vermutung. machst du vielleicht sowas:
Delphi-Quellcode:
hFile := OpenFile(...);
AssignFile(hFile, ...);
Ich tippe allerdings auch darauf, dass Pascal Routinen mit System Routinen gemischt werde. Was amn nicht machen sollte, aber darauf wird in der Hilfe auch ausdrücklich hingewiesen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#15

Re: Hilfe bei datei auslesen

  Alt 24. Jun 2004, 22:01
hallo luckie,

Zitat:
Also, so lange hie rnicht der komplette Quelltext der Routine gepostet wird ist es nur ein Rumgerate.
Delphi-Quellcode:
function SetServer(szAddr: PChar): integer;
var
  hFile : TextFile;
  osvi : TOSVERSIONINFO;
  buf : Array[0..255] of char;
  ofs : TOFSTRUCT;
  lpFileSize : DWORD;
  line : string;
begin
  result := -1;
  GetWindowsDirectory(@buf[0], SizeOf(Buf));
  ZeroMemory(@osvi, SizeOf(TOSVERSIONINFO));
  osvi.dwOSVersionInfoSize := SizeOf(TOSVERSIONINFO);
  if GetVersionEx(osvi) then
  begin
    case osvi.dwPlatformId of
      VER_PLATFORM_WIN32_WINDOWS:
        begin
          // kommt später
        end;
      VER_PLATFORM_WIN32_NT:
        begin
          lstrcat(buf, '\System32\drivers\etc\hosts');
          AssignFile(hFile, string(buf));
          Reset(hFile);
          while not EOF(hFile) do
          begin
            ReadLN(line); // löst den fehler aus
            MessageBox(0, PChar(line), 'blubb', 0);
          end;
        end;
    else
      Exit;
    end;
  end;
end;
die funktion ist natürlich noch nicht fertig, macht aber bereits hier fehler....

nur ka wieso, ich entdecke keinen fehler, und wie gesagt beim ausführen kommt "Runtime Error 6 in..."
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#16

Re: Hilfe bei datei auslesen

  Alt 24. Jun 2004, 22:48
Hallo!

Zitat von Pseudemys Nelsoni:
          lstrcat(buf, '\System32\drivers\etc\hosts');
Was ist das denn für ein Dateiname?
[gebetsmühle]
Wo das gesucht wird, hängt davon ab, ob nicht ein anderes Programm den Default-Ordner geändert hat!
[/gebetsmühle]

Gib mal den vollen Pfad an, dann sehen wir weiter. Soll das im Windows-Verzeichnis sein?

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#17

Re: Hilfe bei datei auslesen

  Alt 24. Jun 2004, 23:46
hallo Brüggendiek ,

guck dir mal die funktion "lstrcat"(das pendant zu "Concat()" in delphi) in der winapi hilfe an, dann weiss du warum da ein halber pfad steht.
Denn "buf" enthält bereits die komplette pfadangabe zum Windows ordner.
lstrcat kombiniert diese 2 strings zu einem bzw erweitert den ersten um den zweiten.
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#18

Re: Hilfe bei datei auslesen

  Alt 25. Jun 2004, 02:27
Moin!

Und könnte es vielleicht sein, das er einen doppelten Backslash da reinbekommt, weil \System32... ja auch noch einen hat am Anfang?

Und nochwas, was auch der Fehler sein kann:

Wenn du ein NTFS Laufwerk hast, dann haben die Dateien unterschiedliche Rechteverteilungen für die einzelnen User/Gruppen. Die hosts in dem Verzeichnis wird auch extra mit solchen Rechten geschützt, und zwar in dem Sinne, das Administratoren und das System vollen Zugriff auf die Datei haben aber normale Benutzer nur Lesezugriff. Da aber die alten File Routinen bei Reset, etc die Dateien immer zum Lesen und Schreiben öffnen, bekommt er da wahrscheinlich ein Problem. Abhilfe schafft hier die Variable FileMode (ich hoffe die gibt es noch, so hiess sie in Pascal) zu ändern. Sie gibt an, welcher Modus beim Reset() etc verwendet wird. IMHO müsstest du eine 1 vor dem Reset() der Variablen zuweisen - ich weiss es aber nicht mehr genau und daher solltest du dich da mal kundig machen bzw. einer hier weiss das.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#19

Re: Hilfe bei datei auslesen

  Alt 25. Jun 2004, 03:10
hallo Muetze,

danke für deine antwort.

Und könnte es vielleicht sein, das er einen doppelten Backslash da reinbekommt, weil \System32... ja auch noch einen hat am Anfang? Ne, der api hilfe nach wird zwar mit GetWindowsDirectory der pfad mit "\" am ende ausgegeben, jedoch war da keiner am ende. Der pfad muss auch 100% richtig sein, denn sonst würde ich den runtime error "3" bekommen, nicht "6" :\.

ich werde mal weiter gucken, worans liegt, deine tipps waren jedenfalls schonmal gut.
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#20

Re: Hilfe bei datei auslesen

  Alt 25. Jun 2004, 09:49
Wieso sieht das niemand?

Code:
  ...
  AssignFile(hFile, string(buf));
  Reset(hFile);
  while not EOF(hFile) do
    begin
      ReadLN(hFile, line); // sollte das Problem lösen
      MessageBox(0, PChar(line), 'blubb', 0);
    end;
  ...
... bei ReadLn übergibst du ihm doch garkeine Datei, wo er rauslesen soll. Ergo versucht er von StdIn zu lesen, was bei Nicht-Konsolen-Anwendungen scheitert. (imho)

Grüße,
Mario
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz